Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> AJAX - bład w kodzie
SN@JPER^
post 20.04.2007, 13:55:37
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Witam,

robie skrypt kalkulatora opartego o AJAX, i jest jeden problem, bowiem podczas gdy próbuje uruchomic skrypt wyświetla mi się komunikat(nie mówiac juz, że trzy razy)

zreszta skrypt można obejrzec http://www.spurspage.com/kalkulator/

Czego to może byc przyczyna ?

Ten post edytował SN@JPER^ 20.04.2007, 13:58:28
Go to the top of the page
+Quote Post
siemakuba
post 20.04.2007, 14:46:20
Post #2





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


Jeżeli dobrze zrozumiałem twój kod, to komunikat o którym piszesz wyskakuje wtedy, kiedy readyState jest różne niż 4.

Kod
if(xmlHttp.readyState == 4)
{
// twój kod
}
else
{
    alert("Nie mozna usyskac odpowiedzi, prosze spróbowac pózniej!");
}


Wszystko jest więc jasne. Zajrzyj pod ten link http://www.w3schools.com/ajax/ajax_xmlhttprequest.asp

wartość readyState zmienia się, zanim dojdzie do wartości 4 i za każdą zmianą sprawdzane jest, czy wartość -- 4. Stąd tyle komunikatów.

Lepiej chyba sprawdzić, czy zapytanie zakończyło się pomyślnie, i dopiero pokazać komunikat.

pozdr.
Go to the top of the page
+Quote Post
SN@JPER^
post 20.04.2007, 18:05:20
Post #3





Grupa: Zarejestrowani
Postów: 266
Pomógł: 0
Dołączył: 4.01.2007
Skąd: Szczecin

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


Czy może być tak(Czy sugerujesz lepsze rozwiązanie) ?:

  1. <?php
  2. //tworzymy zmienna xmlHttp w celu stworzenia obiektu
  3. var xmlHttp = createXMLHttp();
  4.  
  5. function createXMLHttp()
  6. {
  7.  
  8. try
  9. {
  10. xmlHttp = new XMLHttpRequest();
  11. }
  12.  
  13. catch(e)
  14. {
  15.  
  16. try
  17. {
  18. xmlHttp = new ActiveXObject("Microsoft.XMLHttp");
  19. }
  20. catch(e){}//ignorujemy blad
  21.  
  22. } //koniec glównego try i catch(e)
  23.  
  24. //warunki itp.
  25. if(!xmlHttp)
  26. {
  27. alert("Blad! - spróbuj pózniej");
  28. }
  29. else
  30. {
  31. return xmlHttp;
  32. }
  33.  
  34. }//koniec funkcji
  35.  
  36.  
  37. function process()
  38. {
  39.  
  40. if(xmlHttp)
  41. {
  42.  
  43. try
  44. {
  45. //tworzymy sobie zmienne
  46. var pierwsza_liczba = document.getElementById("pierwsza_liczba").value;
  47. var druga_liczba = document.getElementById("druga_liczba").value;
  48. var przez = document.getElementById("przez").value;
  49.  
  50. var parametry = "pierwsza_liczba=" + pierwsza_liczba + "&druga_liczba=" + druga_liczba + "&przez=" + przez;
  51.  
  52. xmlHttp.open("GET", "wynik.php?" + parametry, true);
  53. xmlHttp.onreadystatechange = reservers;
  54. xmlHttp.send(null);
  55. }
  56. catch(e)
  57. {
  58. alert("Nie mozna polaczyc sie z serwerem, prosze spróbowac pózniej !");
  59. }
  60. }
  61.  
  62. }//koniec funkcji
  63.  
  64. function reservers()
  65. {
  66.  
  67.  
  68.  
  69. if(xmlHttp.status == 200)
  70. {
  71. response = xmlHttp.responseXML;
  72. //pobieramy element glówny 
  73. xmlDocumentElement = response.documentElement;
  74. //pobiera wiadomosc tesktowa pierwszego potomka elementu documenty
  75. hello = xmlDocumentElement.firstChild.data;
  76.  
  77. tresc = document.getElementById("tresc");
  78. tresc.innerHTML = hello;
  79.  
  80. } 
  81.  
  82.  
  83.  
  84. else
  85. {
  86. alert("Nie mozna usyskac odpowiedzi, prosze spróbowac pózniej!");
  87. }
  88.  
  89. }
  90. ?>


Ten post edytował SN@JPER^ 20.04.2007, 18:06:00
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: 23.06.2025 - 15:02