Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [advAJAX]Problemy z wyświetlaniem w IE, rozwiązane
son
post 20.04.2006, 17:53:32
Post #1





Grupa: Zarejestrowani
Postów: 210
Pomógł: 0
Dołączył: 31.01.2004
Skąd: Kraków

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


Witam,
Stronka, która korzysta z ajax wyświetla się poprawnie na wszystkich przeglądarchach z wyjątkiem IE. Być może mam jakiś błąd w pliku .js ale konsola Javascript w Firefoxie nie wyświetla żadnych komunikatów, które by mogły o tym świadczyć, dlatego nie wiem co jest przyczyną problemów.

Oto plik .js odpowiedzialny za prasowanie xml:
  1. <?php
  2. (...)
  3. function parseRecords(xml) {
  4.  
  5. with (xml.getElementsByTagName("records").item(0)) {
  6.     page = getAttribute("page");
  7.     maxPerPage = getAttribute("max_per_page");
  8.     startId = maxPerPage*page+1;
  9.     total = getAttribute("total");
  10.     maxPage = Math.ceil(total/maxPerPage);
  11.     if(maxPage < 1) maxPage = 1;
  12.     $("katalog_stopka").innerHTML = "Strona: <b>" + (currentPage) + " / " + maxPage + "</b>"
  13. }
  14.  
  15. $("first").innerHTML = currentPage > 1 ? "<a href='javascript:changePage(-currentPage+1)' class='prev'> &lsaquo;&lsaquo; first</a>" : "&lsaquo;&lsaquo; first";
  16. $("prev").innerHTML = currentPage > 1 ? "<a href='javascript:changePage(-1)' class='prev'> &lsaquo; prev</a>" : "&lsaquo; prev";
  17.  
  18. $("next").innerHTML = currentPage != maxPage ? "<a href='javascript:changePage(1)' class='prev'>next &rsaquo;</a>" : "next &rsaquo;";
  19. $("last").innerHTML = currentPage != maxPage ? "<a href='javascript:changePage("+ (maxPage-currentPage) +")' class='prev'>last &rsaquo;&rsaquo;</a>" : "last &rsaquo;&rsaquo;";
  20.  
  21. $("wstecz").style.visibility = $("naprzod").style.visibility = $("sortuj_str").style.visibility = "visible";
  22. $("kategoria_str").innerHTML = $("kategoria_hstr").value;
  23.  
  24. = $("dataTable");
  25. d.innerHTML = "";
  26. record = xml.getElementsByTagName("record");
  27. result = "";
  28.  
  29. div = document.createElement("div");
  30. zawartosc = "";
  31.  
  32. if(record.length < 1){
  33.     zawartosc = '<div class="greendiv" style="margin: 150px auto"><div class="greendiv2">Nie znaleziono żadnych kartek</div></div>';
  34.     div.innerHTML = zawartosc;
  35.     d.appendChild(div);
  36. }
  37.  
  38. for (= 0; i < record.length; i++) {
  39.  
  40.     if(% 3 == 0) zawartosc += "<div class='thumb_row' style='margin:auto;'>";
  41.     zawartosc += "<div class='thumb' style='width: 180px'><div class='thumb_img' style='text-align:center'><a href='/Ekartki/Katalog/Kategoria/id"+record[i].childNodes[0].childNodes[0].nodeValue+"_"+record[i].childNodes[1].childNodes[0].nodeValue+"'><img src='/img/kartki/mini/"+record[i].childNodes[2].childNodes[0].nodeValue+"' class='img' style='width: 165px; height: 124px;'></a></div><div style='text-align: left; margin-left: 5px;'><table style='font-size: 9px; width:100%' class='link' ><tr><td class='small' style='width:50%'><img src='http://www.e-kartki.org/img/dys.gif' alt='ściągnięcia' /> "+record[i].childNodes[4].childNodes[0].nodeValue+"<br /><img src='http://www.e-kartki.org/img/kal.gif' alt='data dodania' /> "+record[i].childNodes[3].childNodes[0].nodeValue.substring(0, 10)+"</td><td class='small'><img src='http://www.e-kartki.org/img/tap.gif' alt='tapeta' /> <a href='javascript:displayWindow(\"/tapeta.php?jpg="+record[i].childNodes[2].childNodes[0].nodeValue+"\" ,1034,778)' class='small'>1024x768</a><br /><img src='http://www.e-kartki.org/img/tel.gif' alt='tapeta GSM' /> <a href='javascript:tapeciarz(\"img/kartki/"+record[i].childNodes[2].childNodes[0].nodeValue+"\" ,755,531)' class='small'>tapeta GSM</a></td></tr></table></div></div>";
  42.     if(% 3 == 2) zawartosc += "</div>";
  43.     
  44.     div.innerHTML = zawartosc;
  45.     d.appendChild(div);
  46. }
  47. return result;
  48. }
  49.  
  50. function getRecords(){
  51.     advAJAX.get({
  52.   url : "/ajax/katalog.php?page="+currentPage+"&per_page="+maxPerPage+"&sort="+currentSort+"&keyword="+$("key_fraza").value,
  53.   onInitialization : function() {
  54.       $("kategoria_str").innerHTML = $("katalog_stopka").innerHTML = '<span style="font-weight: bold">Pobieranie danych...</span>';
  55.       $("wstecz").style.visibility = $("naprzod").style.visibility = $("sortuj_str").style.visibility = "hidden";
  56.   },
  57.   onSuccess : function(obj) {
  58.       parseRecords(obj.responseXML);
  59.   },
  60.   onError : function(obj) {
  61.       alert("Error: " + obj.status);
  62.   }
  63.         });
  64. }
  65. (...)
  66.  
  67. ?>


Przykład: http://e-kartki.org/Ekartki/Katalog/Widoki

EDIT:
Już wiem, że przyczyną jest to, że xml.getElementsByTagName("records").item(0) (5 linijka) w IE ma wartość null :|
Niestety nie wiem jeszcze dlaczego i jak temu zapobiec.

Proszę o pomoc

EDIT 2:
Narobiłem tyle rzyku a wystarczyło uświadomić IE, że xml jest w kodowaniu ISO-8859-2 biggrin.gif

Pozdrawiam

Ten post edytował son 23.04.2006, 07:36:07


--------------------
Warsztat: Apache 1.3.36 | MySQL 4.1.19 | php 5.1.4 | OS Linux SUSE 10.3 x86_64 | Kernel 2.6.22.12-0.1 | Opera 9.5 | Kate
Na warsztacie: Ekartki
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 24.04.2024 - 04:03