ďťż

[ajax][javascript/php]Błąd przy wykonaniu Błąd w skrypcie

       

Podstrony


telcocafe

Mam kod:<html> <head> <title>Ajax</title> <script type="text/javascript"> <!-- var xmlHttp = null; function GetDateTime(timeZone) { if (window.XMLHttpRequest) xmlHttp = new XMLHttpRequest(); else if (window.ActiveXObject) xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); if (xmlHttp == null) alert("Błąd inicjalizacji obiektu HTTP Request"); else { xmlHttp.onreadystatechange = SetDateTime; xmlHttp.open("GET", "getdatetime.php?timeZone=" + timeZone, true); xmlHttp.send(null); } } function SetDateTime() { if ((xmlHttp.readyState == 4) || (xmlHttp.status == 200)) document.getElementById("lblDateTime").innerHTML = xmlHttp.responseText; } //--> </script> </head> <body> <form action="?"> <p>Strefa czasowa <select id="cbxCountry" name="Country" onchange="GetDateTime(this.options[this.selectedIndex].value)"> <option value="WA">Polska (Warszawa)</option> <option value="LA">USA (Los Angeles)</option> <option value="MO">Rosja (Moskwa)</option> <option value="SY">Australia (Sydney)</option> </select> </p> <div id="lblDateTime"></div> </form> </body> </html>Po odpaleniu i zmianie opcji cbxCountry wyświetla się błąd. Zaś, gdy usunę linilkę sprawdzającąif ((xmlHttp.readyState == 4) || (xmlHttp.status == 200))to wszystko jest ok...
Do czego służą xmlHttp.readyState oraz xmlHttp.status? Nie zawsze mogą one poprawnie działać. Sprawdzałem wszystkie możliwości i tylko usunięcie tej linilki naprawia to, ale kosztem warunku, którego nie jestem w stanie zrozumieć.



On wie, do czego służą :P
Użytkownik DJ_ProG edytował ten post 24 styczeń 2007, 09:16
A więc to jest jedynie wewnętrzny błąd Firefoxa?
Ale msie też ma problem przy funkcji SetDateTime...

//edit

Przykład

//edit

Już wiem do czego służy xmlHttp.status - sprawdza, czy nie wystąpił błąd na przykład 404 (Nie odnaleziono) lub 500 (Wewnętrzny błąd serwera)

//edit

Natomiast xmlHttp.readyState sprawdza, czy strona została załadowana:
* 0 - niezainicjowany
* 1 - ładowanie
* 2 - załadowany
* 3 - interakcja z dokumentem
* 4 - zakończono
Internet jednak się do czegoś przydaje :P

//edit

Przed chwilą zauważyłem, że w przykładzie Firefox wyświetla tak jak należy, jedynie msie odnajduje jakiś błąd...
Błąd był zaś wykonywany na moim Krasnalu, na innym Firefoxie (chyba, że ten, którego używam w tej chwili sfingował)...

//edit

Błąd popełniła Redakcja... Kod poprawny warunku powinien być:if ((xmlHttp.readyState == 4) && (xmlHttp.status == 200))Błąd był w przypadku xmlHttp.status, który w chwili ładowania strony nie miał dostępnego xmlHttp.status... Więc jeśli strona nie zostanie załadowana to nie może być mowy o xmlHttp.status
Użytkownik andrzej_aa edytował ten post 25 styczeń 2007, 16:15
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.