Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prośba o pomoc w modyfikacji skryptu.
Forum PHP.pl > Forum > Przedszkole
hao
Witam.. Eh wiem, że pewnie wilu mnie przeklnie za takie "postowanie", ale JS był zawsze dla mnie czatną magią.

Mam taki skrypt (od razu z kodem html)

  1. <TITLE>Simple JavaScript clock</TITLE>
  2.  
  3. <!-- Hide Script
  4. var step=0;
  5. function myclock()
  6. {d = new Date();
  7. s = ""+d.getHours();
  8. if((step%2)==0) s += " ";
  9. else s+=":";
  10. if(d.getMinutes()<10) ss="0"+d.getMinutes()+" ";
  11. else ss=d.getMinutes()+" ";
  12. step++;
  13. s+=ss;
  14. this.document.forms[0].elements[0].value=s;
  15. setTimeout('myclock()',500);
  16. }
  17. // end hiding script-->
  18. </SCRIPT>
  19.  
  20. <BODY onLoad=myclock()>
  21. <FORM >
  22. <INPUT NAME="clock" VALUE="Enable your JavaScript">
  23. </FORM>
  24. </BODY>
  25. </HTML>


Skrypt do moich potrzeb idealny. Ale niestety potrzebuję pomocy. Otóz chciałbym go tak zmodyfikować, żeby wyświetlał w kilku inputach godzinę z różnych stref czasowych. Do funkcji przydałoby się więc dodać zmienną "różnica czasu", tylko co potem, skoto teraz skrypt jakoś pojawia się w inpucie tylko jednym, bez żadnego określenia gdzie i jak ?

Jeśli to komuś nie zajmie za dużo czasu, byłbym wielce zobowiązany o pomoc w rozwiązaniu tego :|
kossa
Ten fragment określa gdzie ma pojawić się zegar:

Cytat
this.document.forms[0].elements[0].value=s;


form[0] - pierwszy form na stronie
analogicznie dot. elementu

więc do kolejnego inputa w tym samym formie

  1. this.document.forms[0].elements[1].value=s;


w innym formie

  1. this.document.forms[1].elements[0].value=s;


a na drugie pytanie sam sobie odpowiedziałeś smile.gif

Cytat
Do funkcji przydałoby się więc dodać zmienną "różnica czasu",


Łukasz
hao
Wielkie dzięki za chęci smile.gif Tą część zrozumiałem.
Dalej nie mogę dojść do tego:

  1. var diff=0;
  2. var step=0;
  3. function myclock(diff)
  4. {d = new Date();
  5. s = ""+d.getHours();
  6. s=s+diff;
  7. if((step%2)==0) s += " ";
  8. else s+=":";
  9. if(d.getMinutes()<10) ss="0"+d.getMinutes()+" ";
  10. else ss=d.getMinutes()+" ";
  11. step++;
  12. s+=ss;
  13. this.document.forms[0].elements[0].value=s;
  14. setTimeout('myclock(diff)',500);
  15. }


dodałem sobie zmienną diff (różnica czasu) tylo, że po pierwszy odświerzeniu, diff robi się 0, a przecież zdefiniowałem diffa PRZED funkcją sad.gif - więc po sekundzie czas wraca do aktualnego.

Nie bardzo wiem również jak poradzić sobie z wyświetlaniem wyników w różnych inputach. Kiedy dodam zmienną nr ( .elements[nr]. ) wyskakuje mi błąd składni. Przydaloby się również wywołanie tego skryptu nie z onLoad, tylko w każdym INPUCIE osobno ( myclock(nr, diff) ) :-( Nic to do php nie podobne tongue.gif
Bardzo proszę o kolejne wskazówki mistrzu smile.gif
Pozdrawiam.
gilbo
Hmm może to przeoczenie, albo po prostu nie myślisz guitar.gif

Definiujesz diff=0; i gdzie potem zmieniasz jego wartość? Nigdzie. Więc nie dziw się, że wszędzie będzie ona równa 0.
Cytat
Nic to do php nie podobne

W php też wartość zmiennej sama ci się nie zmieni. Musisz coś do niej przypisać:)

Pozdrawiam
hao
Ależ wartość diff definiuję przecież przy wywołaniu funkcji. Może po prostu mam jakiś umysłowy zastój, ale ja to rozumiem tak:

w javascrypcie definiuję sobie zmienne (min. diff), żeby "była".
następnie tworzę sobie funkcję.

Dopiero potem w htmlu wywołuję ją podając wartość tej zmiennej dif. więc na mój rozum, kiedy "wpuszczam" konkretną wartość diffa w funkcję, to dlaczego ona się potem resetuje do tej wartości, którą zdefiniowałem poza funkcją? sad.gif

I jak w javie się robi tablicę? kiedy ten .element[0] zastąpię .element[nr] wywala mi błąd? sad.gif
dzięki!
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.