Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Pokaż "Ładuję", Gdy Dane Się Wczytują,
Civil
post
Post #1





Grupa: Zarejestrowani
Postów: 86
Pomógł: 1
Dołączył: 19.09.2006
Skąd: Wrocław

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


Witam, mam kod
  1. var XMLHttpRequestObject = false;var loadstatustext="<img src='ajaxtabs/loading.gif' /> Ładowanie danych..."if(window.XMLHttpRequest){ XMLHttpRequestObject = new XMLHttpRequest(); XMLHttp.overrideMimeType('text/html; charset=ISO-8859-2');}else if(window.ActiveXObject){ XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");}function przetwarzajDane(srcid, srcmail, srcnazwisko, dest){ if(XMLHttpRequestObject){ var div = document.getElementById(dest); var url = "order_status.php"; XMLHttpRequestObject.open("POST", url); XMLHttpRequestObject.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; ISO-8859-2'); XMLHttpRequestObject.onreadystatechange = function() { if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){ var str = XMLHttpRequestObject.responseText; div.innerHTML = str; } } var idValue = document.getElementById(srcid).value; var mailValue = document.getElementById(srcmail).value; var nazwiskoValue = document.getElementById(srcnazwisko).value; XMLHttpRequestObject.send("id=" + idValue + "&mail=" + mailValue + "&nazwisko=" + nazwiskoValue); }}
I chciałbym, żeby w momencie jak się dane pobierają był komunikat zapisany w zmiennej: "var loadstatustext="<img src='ajaxtabs/loading.gif' /> Ładowanie danych...", w jaki sposób zrobić to w tym kodzie?Trochę sobie spróbowałem poradzić, czy takie coś będzie ok:
  1. XMLHttpRequestObject.onreadystatechange = function() { if(XMLHttpRequestObject.readyState == 1 && XMLHttpRequestObject.status == 200){ var str = XMLHttpRequestObject.responseText; div.innerHTML = loadstatustext; } else if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){ var str = XMLHttpRequestObject.responseText; div.innerHTML = str; } }
Ok, już sobie całkiem poradziłem:
  1. function przetwarzajDane(srcid, srcmail, srcnazwisko, dest){ if(XMLHttpRequestObject){ var div = document.getElementById(dest); var url = "order_status.php"; XMLHttpRequestObject.open("POST", url); XMLHttpRequestObject.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded; ISO-8859-2'); XMLHttpRequestObject.onreadystatechange = function() { if(XMLHttpRequestObject.readyState == 1) { div.innerHTML = loadstatustext; } else if(XMLHttpRequestObject.readyState == 4 && XMLHttpRequestObject.status == 200){ var str = XMLHttpRequestObject.responseText; div.innerHTML = str; } } var idValue = document.getElementById(srcid).value; var mailValue = document.getElementById(srcmail).value; var nazwiskoValue = document.getElementById(srcnazwisko).value; XMLHttpRequestObject.send("id=" + idValue + "&mail=" + mailValue + "&nazwisko=" + nazwiskoValue); }}
Hehe, nie ma to jak zadać pytanie na forum , popatrzeć kod ... i samemu rozwiązać ;-)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
biopaliwo
post
Post #2





Grupa: Zarejestrowani
Postów: 15
Pomógł: 0
Dołączył: 5.08.2007

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


Jedna uwaga: readyState == 1 oznacza, że wywołałeś metodę open, dopiero 3 jest równoznaczne z nawiązaniem połączenia
(a 2 oznacza rzeczywiste wysłanie żądania).
Innymi słowy - mógłbyś zawsze dawać info "Ładuję" bez sprawdzania statusu - na jedno by wyszło.
Jeśli to "Ładuję" ma odpowiadać prawdzie - to musisz sprawdzać wyższe wartości readystate
- ale nie wszystkie przeglądarki je implementują :-)
Go to the top of the page
+Quote Post
Civil
post
Post #3





Grupa: Zarejestrowani
Postów: 86
Pomógł: 1
Dołączył: 19.09.2006
Skąd: Wrocław

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


A dwójka jest obsługiwana przez IE i FIREFOXA?
Go to the top of the page
+Quote Post

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: 22.08.2025 - 16:44