Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [AJAX]Loading po kliknięciu
Forum PHP.pl > Forum > Przedszkole
mperlam
Jako, że nie potrafię ajaxa i js, chciałbym prosić o pomoc. Mam sobie taki skrypt:

  1. <script type="text/javascript">
  2. if(window.XMLHttpRequest) {
  3. ObiektXMLHttp = new XMLHttpRequest(); }
  4. else if (window.ActiveXObject) {
  5. ObiektXMLHttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  6. function getData(zrodlo, cel) {
  7. if(ObiektXMLHttp) {
  8. var cel = document.getElementById(cel);
  9. ObiektXMLHttp.open("GET", zrodlo);
  10. ObiektXMLHttp.onreadystatechange = function() {
  11. if (ObiektXMLHttp.readyState == 4) {
  12. cel.innerHTML = ObiektXMLHttp.responseText;
  13. }}
  14. ObiektXMLHttp.send(null); }} </script>


Po prostu wywołuje on skrypt php, który zechcę i wypisuje jego wynik bez przeładowywania strony. Proste. Niestety mam taki problem, że skrypt, który wywołuję generuje wynik na prawdę długo (np. 5min) więc chciałbym dodać funkcję do w/w kodu ajax taką możliwość, aby po kliknięciu w button oprócz wywołania skryptu php wywoływał się także dodatkowy kod (Loading...).

Bardzo proszę o pomoc osobę, która zna ajaxa bo sam niestety nie daję rady sad.gif
Pikuss
Zakładam że skrypt działa poprawnie, tak więc masz tam funkcję, w której sprawdzasz gotowość

Kod
if (ObiektXMLHttp.readyState == 4) {
   cel.innerHTML = ObiektXMLHttp.responseText;
}

wartości jakie zwraca readyState:

0 - niezainicjowany
1 - ładowanie
2 - załadowany
3 - interakcja z dokumentem
4 - zakończono

Możesz albo bawić się w "else if" i podkładać interesujące Cie wartości albo po prostu:
Kod
if (ObiektXMLHttp.readyState == 4) {
   cel.innerHTML = ObiektXMLHttp.responseText;
}else{
   cel.innerHTML = ''; // tutaj wstaw sobie jakiegoś SWF'a (plik Flash'a) albo GIF'a
}
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.