Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX][XML] Obsługa odpowiedzi XML, Problem ze wyciągnięciem danych z konretnego tagu
troophel
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 3.05.2006

Ostrzeżenie: (0%)
-----


Witam,

zdaję sobie sprawę, że jest masa tutoriali na ten temat, ale mimo niemalże kopiowania przykładów nie udało mi się sprawić, aby mój kod zadziałał.

Robię prostą przeglądarkę zdjęć, nawigacja pomiędzy obrazami napisana jest w AJAXie. Skrypt php pobiera dane dot. obrazka z bazy, po czym generuje kod xml. I wszystko chodzi pięknie jeśli obsługuję odpowiedź poprzez responseText. Niestety muszę odseparować sam obrazek od jego opisu. Obsługę responseXML skopiowałem z książki:

  1. function showImgResponse(obj) {
  2. $('imgLoader').hide();
  3. xmlRoot = obj.responseXML.documentElement;
  4. imgSrcArray = xmlRoot.getElementsByTagName('imgSrc');
  5. imgIdArray = xmlRoot.getElementsByTagName('imgId');
  6. var html = "";
  7. for (var i=0; i<imgSrcArray; i++)
  8. html += imgSrcArray.item(i).firstChild.data;
  9. $('album').innerHTML = "Oto album:" + html;
  10. }


Problem jest taki, że skrypt nie wykonuje nic. Nie wyświetla nawet "Oto album". Samo zapytanie AJAX jest wykonywane, gdyż loader pojawia się i znika, co znaczy, że w.w. funkcja showImgResponse również działa. Najgorsze jest to, że konsola błędów nic nie wyrzuca, ani nie wyrzuca nic php. Naprawdę nie mam już pomysłu.
Tutaj jeszcze przykładowy XML:
  1.      <?xml version="1.0" encoding="utf-8"?>
  2.      <response>
  3.        <photo>
  4.          <imgSrc><img src="img/ruch_run.jpg"/></imgSrc>
  5.          <imgId><input type="hidden" value="4"/></imgId>
  6.        </photo>
  7.        <description>
  8.        Czwarte nasze foto :)
  9.        </description>
  10.      </response>


Dzięki za pomoc,

Pozdrawiam,

Adam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
erix
post
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Najgorsze jest to, że konsola błędów nic nie wyrzuca, ani nie wyrzuca nic php. Naprawdę nie mam już pomysłu.

Zrób sobie w FireBugu breakpointa zaraz po wykonaniu funkcji, będziesz miał wówczas tracing z zawartością wszystkich obiektów.

Poza tym:
  1. dałeś trochę za mało kodu, sama funkcja, to nieco za mało - przyda się jeszcze MIME zwracanej odpowiedzi i konkretnej strony
  2. domniemam, że korzystasz z jQuery - dlaczego wyciąganie danych z XML robisz na piechotę, skoro możesz wszystko mieć dosłownie jedną linijką...?

Cytat
ale mimo niemalże kopiowania przykładów nie udało mi się sprawić

Właśnie dlatego o wiele lepiej uczyć się z dokumentacji niż z książek autorstwa tzw. programistów, którzy klepią listingi bez sprawdzania.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 17.10.2025 - 05:40