Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ajax i pobieranie xml'a z php
Forum PHP.pl > Forum > XML, AJAX
filo
Witam, mam następujący problem. Gdy wyodrębnie potomków obiektu <response> w poniższy sposób, kod zadzaiała pod Operą & FF, natomiast już nie pod IE blink.gif . Gdyby zrobić to tylko jako <response> bez potomków, jako jeden ciąg znaków działa bez problemu.. chodzi o to że php zwraca mi więcej niż jedną wartość i zależy mi na tym aby były one rozdzielone, więc 'działający sposób' odpada..

jak sprawić aby poniższy kod zadziałał również pod IE? lub jak inaczej pobrać potomków obiektu <response>?

...

//wyodrębnia wiadomosc xml z serv.
xmlResponse = xmlHttp.responseXML;

//pobiera el. glowny ze struktury xml
xmlDocumentElement = xmlResponse.documentElement;



tilesizeArray = xmlDocumentElement.getElementsByTagName("tilesize");
tilesize_todisplay = tilesizeArray.item(0).firstChild.data;

crownheightArray = xmlDocumentElement.getElementsByTagName("crownheight");
crownheight_todisplay = crownheightArray.item(0).firstChild.data;

crownangleArray = xmlDocumentElement.getElementsByTagName("crownangle");
crownangle_todisplay = crownangleArray.item(0).firstChild.data;

baseheightArray = xmlDocumentElement.getElementsByTagName("baseheight");
baseheight_todisplay = baseheightArray.item(0).firstChild.data;

baseangleArray = xmlDocumentElement.getElementsByTagName("baseangle");
baseangle_todisplay = baseangleArray.item(0).firstChild.data;

warningArray = xmlDocumentElement.getElementsByTagName("warning");
warning_todisplay = warningArray.item(0).firstChild.data;



document.getElementById("divTileSize").innerHTML ='<i><font color="red">' + tilesize_todisplay + '</font>% </i>';
document.getElementById("divCrownHeight").innerHTML ='<i><font color="red">' + crownheight_todisplay + ' </font>% </i>';
document.getElementById("divCrownAngle").innerHTML ='<i><font color="red">' + crownangle_todisplay + '</font>&deg</i>';
document.getElementById("divBaseHeight").innerHTML ='<i><font color="red">' + baseheight_todisplay + ' </font>% </i>';
document.getElementById("divBaseAngle").innerHTML ='<i><font color="red">' + baseangle_todisplay + ' </font>&deg </i>';
document.getElementById("divWarning").innerHTML = '<i><font color="red">' + warning_todisplay + ' </font></i>';

...

z góry dzięki za pomoc! pozdrawiam. snitch.gif
MMX3
ale po co to z palca pisać. jQuery polecam. Pełno pluginów i pełna dokumentacja. Działa we wszystkich przeglądarkach. Tak to już jest że MSIE6 będzie to 2020 roku przeklinana przez webmasterów. A samo jej istnienie będzie opóźniało rozwój sieci.

a co do IE to obiekt musiał byś zmienić na
  1. xmlHttp = new ActiveXObject("MSXML2.XMLHTTP");


takie życie.
Garrappachc
[xml][/xml]
  1. [/html][php][/php]
    1. [/sql][html]</div></li></ol><div class="foot">[HTML] <a href='./Pobierz-Plik-86000.html'>pobierz</a>, <a href='Plaintext-86000.html'>plaintext</a> </div></pre><!--/Geshi:86000:html-->[html][/html][sql]
    [sql][/sql][php][/php]
filo
obiekt już jest jako 'xmlHttp = new ActiveXObject("MSXML2.XMLHTTP"),tak dla IE jest poprawnie, niemniej jednak wydaje mi sie ze zależy to od części kodu znajdującej sie powyżej.. bo jak napisałem gdy przekazuje sam parametr response w sposób powiedzmy taki:

msg = xmlDocumentElement.firstChild.data;

document.getElementById("divMsg").innerHTML = '<i> + msg + </i>';


w przypadku xml'a typu: <response>msg</response> .. jest ok, natomiast ja mam coś takiego:

<response><potomek1>msg1</potomek1><potomek2>msg2</potomek2></response> i staram sie wyodrębnić elementy msg1 i msg2
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.