Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> setInterval problem, raz się wykona i się zatrzymuje
deniol13
post 19.04.2010, 17:16:32
Post #1





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


  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
Go to the top of the page
+Quote Post
batman
post 19.04.2010, 17:35:24
Post #2





Grupa: Moderatorzy
Postów: 2 921
Pomógł: 269
Dołączył: 11.08.2005
Skąd: 127.0.0.1




Działa tylko raz, ponieważ użyłeś setTimeout, a nie setInterval.


--------------------
I would love to change the world, but they won't give me the source code.
My software never has bugs. It just develops random features.
Go to the top of the page
+Quote Post
deniol13
post 19.04.2010, 17:43:06
Post #3





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


no i mam białą stronę czyli żadnych nowości
Go to the top of the page
+Quote Post
ziqzaq
post 19.04.2010, 18:04:53
Post #4





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


Przejrzyj sobie ten rozdział i następny. Zwróć uwagę na przykłady i metodę onreadystatechange.
Go to the top of the page
+Quote Post
deniol13
post 19.04.2010, 18:21:04
Post #5





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
ziqzaq
post 19.04.2010, 18:57:42
Post #6





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


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.
Go to the top of the page
+Quote Post
deniol13
post 19.04.2010, 19:14:16
Post #7





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


dzięki
no zaczynam się uczyć ajaxa/js tylko że mam książkę od o'reily w języku angielskim
Go to the top of the page
+Quote Post
ziqzaq
post 19.04.2010, 19:34:51
Post #8





Grupa: Zarejestrowani
Postów: 428
Pomógł: 128
Dołączył: 17.06.2007

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


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.
Go to the top of the page
+Quote Post
deniol13
post 19.04.2010, 20:50:08
Post #9





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


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
Go to the top of the page
+Quote Post
mortus
post 19.04.2010, 21:10:23
Post #10





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

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


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.

Ten post edytował mortus 19.04.2010, 21:16:51
Go to the top of the page
+Quote Post
deniol13
post 20.04.2010, 06:38:57
Post #11





Grupa: Zarejestrowani
Postów: 190
Pomógł: 2
Dołączył: 30.11.2009

Ostrzeżenie: (10%)
X----


dzieki wielkie, już działa
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: 14.08.2025 - 00:53