![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
Do pobierania danych i wyswietlania go w tabeli uzywam zmodyfikowanego przykladu ze strony Anakina:
http://advajax.anakin.us/phpsolutions/2.html Wszystko pieknei dziala ale mam jedno pytanie: Dlaczego gdy XML nie jest w jednej linii nie zostaje sparsowany? Mam takze jeden maly problem, takze z XMLem. Po zmodyfikowaniu JSa: Kod var currentPage = 0; var currentSort = "companyName"; var currentSortOrder = "ASC"; var maxPage; var defaultTableData; function $(id) { return document.getElementById(id); } function recordClick(obj) { alert(obj.id); } function parseRecords(xml) { with (xml.getElementsByTagName("records").item(0)) { page = getAttribute("page")*1; maxPerPage = getAttribute("max_per_page"); startId = maxPerPage*page+1; total = getAttribute("total")*1; maxPage = Math.ceil(total/maxPerPage); } $("btnFirst").style.visibility = $("btnPrev").style.visibility = page == 0 ? "hidden" : "visible"; $("btnLast").style.visibility = $("btnNext").style.visibility = page+1 == maxPage ? "hidden" : "visible"; d = $("dataTable"); for (i = d.rows.length-1; i >= 0; i--) d.deleteRow(i); record = xml.getElementsByTagName("record"); result = ""; for (i = 0; i < record.length; i++) { tr = document.createElement("tr"); td = document.createElement("td"); if (i % 2 == 0) { tr.className = "dark"; } else { tr.className = "light"; } for (j = 0; j < 5; j++) { if (j == 0) { tr.id = record[i].childNodes[j].childNodes[0].nodeValue;; tr.setAttribute('onclick', 'recordClick(this)'); tr.style.cursor = "pointer"; } else { td = document.createElement("td"); td.innerHTML = record[i].childNodes[j].childNodes[0].nodeValue; tr.appendChild(td); } } d.appendChild(tr); } return result; } function initSearchForm() { advAJAX.assign(document.getElementById("searchForm"), { onInitialization : function() { $("dataStats").innerHTML = '<span>Searching...</span>'; $("btnPrev").style.visibility = "hidden"; $("btnNext").style.visibility = "hidden"; $("btnFirst").style.visibility = "hidden"; $("btnLast").style.visibility = "hidden"; }, onSuccess : function(obj) { $("dataStats").innerHTML = ""; parseRecords(obj.responseXML); addTableRolloverEffect('resultTable','rollover',''); }, onError : function(obj) { alert('dupa'); } }); } ...IE przestalo mi parsowac XMLA (FF, Opera dziala w porzadku). No i nie mam pojecia co tu jest nie tak, gdyz IE odebral porpawnie sformatowany XML, ale podczas parsowania wywala blad (typu 'null' is not defined). |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
w IE nie ma responseXML.... w IE trzeba sparsowac responseText do xml poprzez loadXML... czy naprawdę google jest tak trudne w użyciu?
przykład: Kod function getXML(x){
if (typeof x.responseXML=='object'){ if(x.responseXML.xml == '') x.responseXML.loadXML(x.responseText); return x.responseXML; } return null; } -------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 660 Pomógł: 13 Dołączył: 9.06.2004 Skąd: Wrocław i okolice Ostrzeżenie: (0%) ![]() ![]() |
To co powiesz na to, że ja używam coś takiego z powodzeniem pod IE
![]() Kod function parseRecords(xml) {
with (xml.getElementsByTagName("records").item(0)) { page = getAttribute("page")*1; maxPerPage = getAttribute("max_per_page"); startId = maxPerPage*page+1; total = getAttribute("total")*1; maxPage = Math.ceil(total/maxPerPage); $("dataStats").innerHTML = "Rekordy: " + startId + " - " + (startId+getAttribute("count")*1-1) + " z " + total + " (Strona: " + (page+1) + " z " + maxPage + ")"; } itd.. function getRecords() { advAJAX.get({ url : "3.php", onSuccess : function(obj) { alert(obj.responseXML); } }); } -------------------- |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@Seth - a to Ci się dostało od kolegi anopaka
![]() Przeczytaj: Konwersja XML do tablicy w JavaScript (zastaosowanie w AdvancedAJAX) Może się przyda. -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 258 Pomógł: 16 Dołączył: 21.09.2004 Skąd: Kielce Ostrzeżenie: (0%) ![]() ![]() |
Cytat Dlaczego gdy XML nie jest w jednej linii nie zostaje sparsowany? tiraeth miał chyba podobny problem http://forum.php.pl/index.php?showtopic=45569&hl= -------------------- -------------
------ |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 124 Pomógł: 0 Dołączył: 26.10.2004 Skąd: Rybnik Ostrzeżenie: (0%) ![]() ![]() |
@bigZbig rozumiem, gdy ktoś pyta na forum o problem nie spotykany zbyt często, ale jeśli to jest typowy problem, to czemu pierwsze nie skorzystać z pomocy googla? ja nikogo nie winie o pytanie o pomoc, ale niekiedy chyba można troche więcej wysiłku włożyć niż tylko napisanie posta...
-------------------- Hardware: Celeron 3.06, 512 MB DDR
Software: Apache 2.0, MySQL 4.0, php 4.3.1, Zend 5.1, Firefox |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
@anopak: tego akurat nei musisz mi proponowac. Nie znalazlem wczesniej rozwiazania, wiec pisze tutaj.
Jeszcze poczytam to co podaliscie, ale chyba rozwiaze problem. Dzieki. |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 740 Pomógł: 15 Dołączył: 23.08.2004 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
@Seth - problem tkwi w tym, ze biale znaki to tekst, ktory w xmlu musi byc przechowywany w jakims elemencie. Element ten jest wezlem tekstowym, ktory trzeba uwzglednic poruszajac sie po strukturze xml.
@anopak - widzisz ja akurat znam Setha - nie osobiscie - ale wiem, ze jest to facet, ktory natrafiajac na problem probuje go samodzielnie rozwiazac. Czasami zwyczajnie nie przychodzi czlowiekowi do glowy co wpisac w googlach, albo bladzi po omacku. Puki co z ludzmi latwiej sie dogadac. -- edit -- @anopak - a swoja droga to Twoje rozwiazanie nie jest tak naprawde zadnym rozwiazaniem tylko obejsciem problemu. Jednak sprawa nie jest wcale tak banalna. Ten post edytował bigZbig 22.06.2006, 17:09:18 -------------------- bigZbig (Zbigniew Heintze) | blog.heintze.pl
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Przyjaciele php.pl Postów: 1 789 Pomógł: 41 Dołączył: 30.10.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
IE też parsuje mi XML używająć responseXML. Jedyny problem tkwił w tym, że nie chciał parsować gdy kodowanie było inne niż utf-8
![]() |
|
|
![]()
Post
#10
|
|
![]() Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) ![]() ![]() |
@tiraeth: ha! dokladnie w tym lezal problem
![]() @bigZbig: probowalem uzyc tego przykladu ale nijak nie szlo z moimi danymi :/ Inna sprawa to taka, ze mocno zastanwaiam sie nad tym jaki typ danych zwracac. Mam dane w postaci zagniezdzonych drzewek, ktore musze wyswietlic w roznych miejscach. Szczerze mowiac mozna sie pochlastac z ta cala obsluga XMLa w JSie :/// Czy ktos z Was ma jakies doswiadczenia we wstawianiu danych z XMLa - z dosyc rozbudowanego - wprost w rozne elementy strony? Mecze to od dwoch dni i idzie mi tak opornie, ze powoli sie zalamuje ![]() Na necie nie znajduje ![]() --------------------------------------------- EDIT Sam odpowiem na swoje pytanie ![]() JSON - dzieki temu oraz php-json mozna sobie zaoszczedzic mase czasu i nerwow z parsowaniem XMLa. Iha ![]() Ten post edytował Seth 27.06.2006, 11:36:17 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 14.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
Panowie, męczyłem się z tym responseXML cały dzień. U mnie też pod FF wszystko działało, a pod IE nie tworzył obiektu XML. Rozwiązanie okazało się banalnie proste:
1. XML MUSI być poprawny. 2. trzeba w pliku php generującym XML'a wrzucić nagłówek: header('Content-Type: application/xml'); ...od razu zaczęło działać. (advAjax 1.1.2) |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 27.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
http://www.sitemax.ovh.org/nero/index2.htm
Nadal nie bardzo wiem jak doprowadzic xhtml do formy zrozumialem dla IE abym mogl plynnie poruszac sie po jego strukturze :| |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 14.11.2005 Ostrzeżenie: (0%) ![]() ![]() |
XHTML? Hmm... ja wrzucam tylko czyste dane w XML i generuje z niego elementy xhtml'a. Ale może sie nie znam...
![]() |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 05:47 |