Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [AJAX] Ponowne wywołanie skryptu po otrzymaniu odpowiedzi z serwera
rozny
post
Post #1





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


Witam,

wywołuję w <body onload> skrypt AJAX wysyłający zapytanie do pliku php. Po otrzymaniu odpowiedzi chcę ponownie wywołać ten skrypt. Oto kod:

  1. function wyslijDane() {
  2.  
  3. xmlhttp = typeof XMLHttpRequest == "undefined" ? new ActiveXObject('Microsoft.XMLHttp'):new XMLHttpRequest();
  4.  
  5. var distList = document.getElementById("dist_list").value;
  6. var selectTemplate = document.getElementById("select_template").value;
  7. var postSubject = document.getElementById("subject").value;
  8. var postContent = document.getElementById("tresc").value;
  9.  
  10. var url = "send_newsletter.php";
  11. var params = "dist_list=" + encodeURIComponent(distList) + "&";
  12. params += "select_template=" + encodeURIComponent(selectTemplate) + "&";
  13. params += "subject=" + encodeURIComponent(postSubject) + "&";
  14. params += "tresc=" + encodeURIComponent(postContent);
  15.  
  16. document.getElementById("head").innerHTML= "Wysyłanie newslettera...<br />";
  17.  
  18. xmlhttp.open("POST",url,true);
  19. xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
  20. xmlhttp.send(params);
  21. xmlhttp.onreadystatechange=stateChanged;
  22.  
  23. }
  24.  
  25. function stateChanged() {
  26.  
  27. if (xmlhttp.readyState==4) {
  28.  
  29. document.getElementById("loading").style.display="none";
  30. document.getElementById("head").style.display="block";
  31. document.getElementById("head").innerHTML=xmlhttp.responseText;
  32. }
  33. }
  34.  
  35. function GetXmlHttpObject() {
  36.  
  37. if (window.XMLHttpRequest) {
  38.  
  39. return new XMLHttpRequest();
  40. }
  41.  
  42. return null;
  43.  
  44.  
  45. }


Niestety moje próby stanęły na niczym, a w googlach też nie znalazłem nic co mogłoby mi pomóc. Próbowalem w function stateChanged() wywoływać funkcję wyslijDane(); po otrzymaniu odpowiedzi z serwera, ale funkcja sie nie wykonywała. W funkcji wyslijDane() próbowałem robić rekurencję, ale też nic się nie działo po wykonaniu zapytania. Zależy mi na tym, by wyświetlać wynik każdego zakończenia pętli w pliku php, a z racji ograniczeń czasu wykonywania skryptu i ogólnie szybkości działania lepiej chyba kilkakrotnie wywołać skrypt niż mielic niewiadomo ile pętli przeładowując plik php z poziomu php... Bardzo bym prosił o pomoc, bo stoję w miejscu z robotą (IMG:style_emoticons/default/dry.gif)

Dobra, dałem radę. Do zamknięcia.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
rozny
post
Post #2





Grupa: Zarejestrowani
Postów: 116
Pomógł: 0
Dołączył: 14.01.2004
Skąd: Zielona Góra

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


thek - ja to doskonale rozumiem, ale w przypadku kiedy potrzebuje dosłownie raz użyć tego kodu w całym projekcie nie widzę sensu ładowania całej biblioteki z milionem funkcji, których w ogóle nie wykorzystam. doskonale zdaję sobie sprawę, że biblioteki i frameworki powstały po to żeby ułatwić programistom życie, ale to nie oznacza, że zawsze trzeba ich używać. Czasem lepiej napisać samemu to co już zostało napisane, bo będzie to mniejsze niż cała biblioteka i przy okazji nabędziemy kolejnego doświadczenia (IMG:style_emoticons/default/wink.gif)
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: 28.12.2025 - 08:20