Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: setInterval problem
Forum PHP.pl > Forum > XML, AJAX
deniol13
  1. <head>
  2. var xhttp = false;
  3.  
  4. if( window.XMLHttpRequest ) { xhttp = new XMLHttpRequest(); }
  5. else { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  6.  
  7. function test()
  8. {
  9. xhttp.open("GET", '3.php', true);
  10. document.getElementById('sb').innerHTML = xhttp.responseText;
  11. xhttp.send(null);
  12. }
  13.  
  14. setTimeout("test()", 1000);
  15.  
  16. </script>
  17. </head>
  18.  
  19. <body>
  20.  
  21. <span id="sb"></span>
  22.  
  23. </body>
  24. </html>


no i nie pobiera danych, jeśli zmienie funkcję test() na

  1. xhttp.open("GET", '3.php', true);
  2. function test()
  3. {
  4.  
  5. document.getElementById('sb').innerHTML = xhttp.responseText;
  6.  
  7. }
  8. xhttp.send(null);


to pobierze dane ale tylko raz (wiem czemu ale chodzi mi o to co jest nie tak w pierwszym przykładzie)

ps. dopiero zaznajamiam się z ajaxem
batman
Działa tylko raz, ponieważ użyłeś setTimeout, a nie setInterval.
deniol13
no i mam białą stronę czyli żadnych nowości
ziqzaq
Przejrzyj sobie ten rozdział i następny. Zwróć uwagę na przykłady i metodę onreadystatechange.
deniol13
wyczarowałem cusik takiego

  1. <head>
  2. var xhttp = false;
  3. window.onload = test();
  4.  
  5. if( window.XMLHttpRequest ) { xhttp = new XMLHttpRequest(); }
  6. else { xhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  7.  
  8. xhttp.onreadystatechange = function()
  9. {
  10. if( xhttp.readyState == 4 && xhttp.status == 200 )
  11. {
  12. document.getElementById('sb').innerHTML = xhttp.responseText;
  13. }
  14. xhttp.open('GET', '3.php');
  15. xhttp.send();
  16. }
  17.  
  18. setInterval("function();", 1000);
  19.  
  20. </script>
  21. </head>
  22.  
  23. <body>
  24.  
  25. <span id="sb"></span>
  26.  
  27. </body>
  28. </html>


no ale tzw. lipa sad.gif
ziqzaq
Cytat
wyczarowałem cusik takiego

To czeka cię jeszcze trochę nauki zanim wyczarujesz fireball-a.
Gdzie jest zdefiniowana funkcja "function" i jak było to możliwe?
Wybacz, ale przydałby ci się najpierw kurs javascript bez ruszania ajax-a.
Weź mi chłopie pokaż gdzie w przykładach na podanej przeze mnie stronie jest takie cudo jak poniżej:
[JAVASCRIPT] pobierz, plaintext
  1. xhttp.onreadystatechange = function()
  2. {
  3. if( xhttp.readyState == 4 && xhttp.status == 200 )
  4. {
  5. document.getElementById('sb').innerHTML = xhttp.responseText;
  6. }
  7. xhttp.open('GET', '3.php');
  8. xhttp.send();
  9. }
[JAVASCRIPT] pobierz, plaintext

Dam ci zarys skryptu:
[JAVASCRIPT] pobierz, plaintext
  1. function dorequest()
  2. {
  3. // stworz obiekt xhttp request i wykonaj zapytanie
  4. }
  5. function init() {
  6. // tutaj wywołanie dorequest
  7. }
  8. window.onload = init;
[JAVASCRIPT] pobierz, plaintext

I lipa jest nie bo nie znasz ajax-a tylko dlatego, że nie znasz składni javascript.
deniol13
dzięki
no zaczynam się uczyć ajaxa/js tylko że mam książkę od o'reily w języku angielskim
ziqzaq
Niestety IMO angielski to podstawa.
Nie znaczy to, że nie ma materiałów po polsku (np. pierwszy lepszy: browsehappy).
Pamiętaj żeby przykładać uwagę do szczegółów, tak j.w. do przykładów na stronce w3c i będzie ok.
deniol13
to jest poprostu niemożliwe

dałem sobie dla testu

[JAVASCRIPT] pobierz, plaintext
  1. <html>
  2. <head>
  3. <script>
  4.  
  5. function get()
  6. {
  7. var xhttp = new XMLHttpRequest();
  8. xhttp.open('GET', '3.php', true);
  9. xhttp.send();
  10. if( xhttp.readyState == 4 && xhttp.status == 200 )
  11. {
  12. document.getElementById('sb').innerHTML = xhttp.responseText;
  13. }
  14. }
  15. window.onload = get();
  16.  
  17. </script>
  18. </head>
  19. <body>
  20.  
  21. <span id="sb">s</span>
  22.  
  23. </body>
  24. </html>
[JAVASCRIPT] pobierz, plaintext


nie działa kompletnie
mortus
Twój obiekt xhttp jak najbardziej pobiera dane, jednak ich nie wyświetlasz, ponieważ nigdzie nie masz zdefiniowanej własności onreadystatechange obiektu xhttp. Własnością tą powinna być funkcja i Twój kod z linii 10-14 włącznie powinien się znaleźć właśnie w ciele tej funkcji. Przyjrzyj się jeszcze raz przykładom z adresów podanych przez ziqzaq.
deniol13
dzieki wielkie, już dział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.