Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienne, kasowanie?
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Mlodycompany
Witam. Na poczatku przedstawie kod

  1.  
  2. startday = new Date();
  3. clockStart = startday.getTime();
  4. function initStopwatch()
  5. {
  6. var myTime = new Date();
  7. var timeNow = myTime.getTime();
  8. var timeDiff = timeNow - clockStart;
  9. this.diffSecs = timeDiff/1000;
  10. return(this.diffSecs);
  11. }
  12. function getSecs(get, id)
  13. {
  14. var mySecs = initStopwatch();
  15. var mySecs1 = ""+mySecs;
  16. var link = "'.$_SESSION['link'].'akcje.php?" + get;
  17.  
  18. alert(link);
  19. mySecs1= mySecs1.substring(0,mySecs1.indexOf("."));
  20. window.setTimeout(\'getSecs()\',1000);
  21. if (mySecs1%1==0) {
  22. getData(link, id);
  23. }
  24.  
  25. }
  26.  
  27.  
  28.  
  29. <body onLoad="window.setTimeout(getSecs(\'p=lista_online\', \'left\'),1);">
  30.  


Skrypt ogólnie ma sprawdzać userów online i pokazywać ich na stronie. Otóż jest taki problem, że zmienne przekazywane do funkcji, chodzi mi o "\'p=lista_online\', \'left\'", podczas wczytania strony istnieją, a potem już  nie. I pytanie brzmi: jak zrobić aby te zmienne były cały czas aktywne?

phpion
Może dlatego, że tutaj:
  1. window.setTimeout(\'getSecs()\',1000);

ich nie przekazujesz?
Mlodycompany
nic z tego, że tak powiem. uzupełniłem tam wszystko i problem jest taki, że nie odświeża się co sekunde, wogóle się nie odświeża.
Quantum
może.. window.setTimeout(getSecs, 1000)
Mlodycompany
nie smile.gif

wystaczyło zrobić tak:

  1. startday = new Date();
  2. clockStart = startday.getTime();
  3. function initStopwatch()
  4. {
  5. var myTime = new Date();
  6. var timeNow = myTime.getTime();
  7. var timeDiff = timeNow - clockStart;
  8. this.diffSecs = timeDiff/1000;
  9. return(this.diffSecs);
  10. }
  11. function getSecs(get, id)
  12. {
  13. var mySecs = initStopwatch();
  14. var mySecs1 = ""+mySecs;
  15. var link = get;
  16.  
  17.  
  18. mySecs1= mySecs1.substring(0,mySecs1.indexOf("."));
  19. window.setTimeout(function(){getSecs(link, id);}, 1000);
  20. if (mySecs1%1==0) {
  21.  
  22. getData(link, id);
  23.  
  24. }
  25.  
  26. }
  27.  
  28.  
  29. <body onLoad="window.setTimeout(getSecs(\''.$_SESSION['link'].'akcje.php?p=lista_online\', \'left\'),1);">




Ale mam jeszcze problem z inną rzeczą. Otóż mam taką funkcję 

  1.  
  2.  
  3. function otworzRozmowe(id){
  4. var rozmowa = document.getElementById(\'rozmowa\');
  5. rozmowa.style.display = "inline";
  6. var link = "'.$_SESSION['link'].'akcje.php?p=rozmowy&id=";
  7. link = link + id;
  8. alert(link);
  9. window.setTimeout(\'getSecs(link, id),1\');"
  10. }
  11.  
  12.  
  13.  


i błąd jest w lini 10. Stwierdzam to, że po usunięciu tej lini działa. A co działa? Otóż mam tak że po lewej stronie mam użytkowników online i gdy bedzie klikniete na jakiegoś tam usera to zostaje wywołana funkcja otworzRozmowe(\'rozmowa\'); i to tylko zmienia styl div#rozmowa i wyświetla alert. A gdy jest ta linia to nie pokazuje userów i alertu brak.

Kildyt
Mnie też byłoby ciężko dochodzić w ciemno co jest nie tak w kodzie js. Konsola JavaScript, która jest standardowo dołączona do np. firefoxa, google chrome itp. pomoże ci w znalezieniu błędu.
Mlodycompany
tutaj wystąpił akurat błąd z mojej winy bo w lini 10 na koncu za srednikiem jest " i dlatego. Dopiero to zauwazylem jak napisalem biggrin.gif
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.