Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Prośba o pomoc w modyfikacji skryptu., Bardzo prosty zegarek "wojskowy"
hao
post 8.08.2007, 22:18:55
Post #1





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


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 :|
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kossa
post 9.08.2007, 00:50:25
Post #2





Grupa: Zarejestrowani
Postów: 1 165
Pomógł: 9
Dołączył: 9.04.2002
Skąd: Toruń

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


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


--------------------
Go to the top of the page
+Quote Post
hao
post 10.08.2007, 23:26:30
Post #3





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


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.
Go to the top of the page
+Quote Post
gilbo
post 11.08.2007, 01:22:39
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 16.04.2004
Skąd: z domu

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


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

Ten post edytował gilbo 11.08.2007, 01:24:17
Go to the top of the page
+Quote Post
hao
post 11.08.2007, 13:23:43
Post #5





Grupa: Zarejestrowani
Postów: 106
Pomógł: 0
Dołączył: 12.02.2004

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


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!
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: 18.07.2025 - 03:02