Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript]Stoper
szczabik
post 26.11.2008, 14:54:16
Post #1





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobiłem takie coś
  1. <?php
  2. echo "<script type=\"text/javascript\">
  3. function stoper() {
  4. ile=1200;  
  5. minut = Math.floor(ile / (1000 * 60)-godzin*60);
  6. sekund = Math.floor(ile / 1000 - godzin*60*60 - minut*60);
  7.  
  8. window.document.getElementById(\"div1\").innerHTML = ‘Pozostalo: ‘+minut+’ minut, ‘+sekund+’ sekund’;
  9.  
  10. }
  11.  
  12. window.setInterval(stoper,1000);
  13. </script>
  14.  
  15.  
  16. <div id=\"div1\"></div>";
  17. ?>


i nie chce coś liczyć ile czasu pozostało i nie wiem co zrobiłem źle może mi ktoś pomóc z tym kodem ?
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 29)
wookieb
post 26.11.2008, 15:15:11
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




A gdzie masz zmienną "godzin" ?


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 15:49:50
Post #3





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobiłem tak
  1. <?php
  2. echo "<script type=\"text/javascript\">
  3. function stoper() {
  4. ile=1200;
  5. godzin = Math.floor(ile / (1000 * 60 * 60));  
  6. minut = Math.floor(ile / (1000 * 60)-godzin*60);
  7. sekund = Math.floor(ile / 1000 - godzin*60*60 - minut*60);
  8. window.document.getElementById(\"div1\").innerHTML = \"Pozostalo: \"+minut+\" minut \"+sekund+\" sekund\";
  9.  
  10. }
  11.  
  12. window.setInterval(stoper,1000);
  13. </script>
  14.  
  15.  
  16. <div id=\"div1\"></div>";
  17. ?>

i wyświetla cały czas Pozostalo: 0 minut 1 sekund
Stała ile=1200 gdzie 1200 to 20 min i chciał bym by od 20 min liczyło mi do 0
I nie wiem jak to zrobić
Go to the top of the page
+Quote Post
wookieb
post 26.11.2008, 15:55:10
Post #4





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




No pewnie ze wyswietla cały czas ta sama wartosc po przeciez nie zmieniasz wartosci zmiennej 'ile'.
Kod
var ile=1200;

function stoper()
{
godzin=Math.floor(ile/3600);

minut =Math.floor(ile/60)%60;
sekund =ile/%60;

document.getElementById('div1').innerHTML = 'Pozostalo: '+minut+' minut '+sekund+' sekund';
ile--;
}

var intervalHandler=setInterval(stoper,1000);


Ten post edytował wookieb 26.11.2008, 15:55:57


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 16:00:58
Post #5





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobiłem tak jak piszesz i nic nie wyświetla
Go to the top of the page
+Quote Post
wookieb
post 26.11.2008, 16:03:36
Post #6





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Literówka...
Kod
sekund =ile%60;

którą mogłeś sobie poprawić....

Ten post edytował wookieb 26.11.2008, 16:04:20


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 16:07:30
Post #7





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Dalej nic się nie wyświetla
Go to the top of the page
+Quote Post
wookieb
post 26.11.2008, 16:10:24
Post #8





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Jak nie działa jak działa
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />

  <link rel="stylesheet" href=" [nazwa_arkusza_stylow.css] " type="text/css" />
  
</head>
<body>
<div id="div1"></div>
<script type="text/javascript">
var ile=1200;

function stoper()
{
godzin=Math.floor(ile/3600);

minut =Math.floor(ile/60)%60;
sekund =ile%60;

document.getElementById('div1').innerHTML = 'Pozostalo: '+minut+' minut '+sekund+' sekund';
ile--;
}

var intervalHandler=setInterval(stoper,1000);
</script>
</body>
</html>

Ale jak znam życie to bezmyślnie skopiowałeś i nie poprawiłeś ' które sa zamiennikami \" w twoim kodzie.

Wiec zacznij myśleć i popraw to co musisz SAM poprawić.


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 16:40:44
Post #9





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Dopisałem taki kod
Kod
if ('+minut+' == 0 && '+sekund+' == 0){
clearInterval(intervalHandler);
}

by zatrzymać stoper gdy dojdzie do 0 ale coś ten kod nie działa bo stoper się nie zatrzymuje. Wie ktoś czemu ?
Go to the top of the page
+Quote Post
erix
post 26.11.2008, 16:44:19
Post #10





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
Kod
if ('+minut+' == 0 && '+sekund+' == 0){

Masz błąd w instrukcji warunkowej. Źle wstawiasz zmienne do porównania i wychodzi Ci babol w składni. Chwyć za kurs JavaScript, bo to są podstawy.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 16:54:47
Post #11





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Może mi ktoś powiedzieć co źle zrobiłem w tej instrukcji warunkowej
Go to the top of the page
+Quote Post
erix
post 26.11.2008, 16:59:49
Post #12





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Wkleiłeś bezmyślnie kod z:
Kod
'Pozostalo: '+minut+' minut '+sekund+' sekund'

Zobacz, jak wygląda instrukcja warunkowa w JS i co oznaczają użyte operatory +.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 17:04:12
Post #13





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobilem tak i też nie działa
Kod
if (minut == 0 && sekund == 0){
clearInterval(intervalHandler);
}
Go to the top of the page
+Quote Post
wookieb
post 26.11.2008, 17:04:13
Post #14





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(szczabik @ 26.11.2008, 16:40:44 ) *
Dopisałem taki kod
Kod
if ('+minut+' == 0 && '+sekund+' == 0){
clearInterval(intervalHandler);
}

by zatrzymać stoper gdy dojdzie do 0 ale coś ten kod nie działa bo stoper się nie zatrzymuje. Wie ktoś czemu ?


A czy nie prościej
Kod
if(ile==0)

...


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 17:06:41
Post #15





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


A czy nie prościej
Kod
if(ile==0)

Zrobilem tak i dalej liczy nie zatrzymuje sie na 0
Go to the top of the page
+Quote Post
erix
post 26.11.2008, 17:07:04
Post #16





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Lepiej sprawdzać, czy jest mniejsze/równe zeru, bo podejrzewam, że wyłączasz stoper, gdy wartość jest -1. winksmiley.jpg


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 17:14:22
Post #17





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


To jak mam to zrobić gdy dojdzie do 0 by się zatrzymało

Ten post edytował szczabik 26.11.2008, 17:14:44
Go to the top of the page
+Quote Post
wookieb
post 26.11.2008, 17:27:30
Post #18





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Czy to wógóle czytasz co się do ciebie pisze?questionmark.gif
Kod
if(ile<=0)
{
clearInterval(intervalHandler);
}


Ten post edytował wookieb 26.11.2008, 17:27:38


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 17:30:11
Post #19





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobilem już tak wcześniej i się nie zatrzymuje
Go to the top of the page
+Quote Post
wookieb
post 26.11.2008, 17:33:06
Post #20





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Albo ja jestem głupi ale wykazujesz nadzwyczajny poziom niskiej inteligencji
Kod
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>
  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />

  <link rel="stylesheet" href=" [nazwa_arkusza_stylow.css] " type="text/css" />
  
</head>
<body>
<div id="div1"></div>
<script type="text/javascript">
var ile=5;

function stoper()
{
godzin=Math.floor(ile/3600);

minut =Math.floor(ile/60)%60;
sekund =ile%60;

document.getElementById('div1').innerHTML = 'Pozostalo: '+minut+' minut '+sekund+' sekund';
ile--;
    if(ile<0)
    {
    clearInterval(intervalHandler);
    }

}

var intervalHandler=setInterval(stoper,1000);
</script>
</body>
</html>

I jak chcesz napisać "nie działa" to ułóż to ładniej w słowa tongue.gif


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 17:39:16
Post #21





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


No teraz działa ale jeszcze jest jedno niedociągnięcie stoper zatrzymuje się na Pozostalo: 0 minut 1 sekund
Go to the top of the page
+Quote Post
wookieb
post 26.11.2008, 17:46:55
Post #22





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Cytat(szczabik @ 26.11.2008, 17:39:16 ) *
No teraz działa ale jeszcze jest jedno niedociągnięcie stoper zatrzymuje się na Pozostalo: 0 minut 1 sekund

I nie ułozyłeś ładnie w słowa ;>
Pomyśl jaką wpisałeś instrukcje warunkowa bo raczej nie skopiowałeś.

A przemyśl sobie sekunda po sekundzie. Najlepiej 1201 razy jaka będzie za każdym razem wartość "ile"

Ten post edytował wookieb 26.11.2008, 17:48:15


--------------------
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 17:55:59
Post #23





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Jaką funkcją mogę zrobić by samoczynnie wcisnął się przycisk submit w formularzu gdy stoper dojdzie do 0
Go to the top of the page
+Quote Post
erix
post 26.11.2008, 17:58:26
Post #24





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A może frytki do tego?

http://www.javaworld.com/jw-06-1996/jw-06-javascript.html


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 20:21:14
Post #25





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobiłem tak
  1. <?php
  2. if (isset($_POST['submit'])) {
  3. echo 'Test';
  4. } else {
  5.  
  6. echo "<script type=\"text/javascript\">
  7. var ile=12;
  8.  
  9. function stoper()
  10. {
  11. godzin=Math.floor(ile/3600);
  12. minut =Math.floor(ile/60)%60;
  13. sekund =ile%60;
  14. document.getElementById('div1').innerHTML = 'Pozostalo: '+minut+' minut '+sekund+' sekund';
  15. ile--;
  16.  
  17. if(ile<0){
  18. clearInterval(intervalHandler);
  19. alert(\"Czas na rozwiązanie quizu minął!\");
  20. window.setTimeout(formularz,10000)
  21. submit();
  22. }
  23.  
  24. }
  25. var intervalHandler=setInterval(stoper,1000);
  26.  
  27.  
  28.  
  29. </script>
  30.  
  31. <div id=\"div1\"></div>";  
  32.  
  33. <form name='act1' method='post'>
  34. <table cellpadding='0' cellspacing='0' class='center'>
  35. <tr>
  36. <td align='center' colspan='2'>
  37. <input type='submit' name='submit' value='Dodaj' class='button'>
  38. <input type='reset' value='Wyszyść' class='button'>
  39. </td>
  40. </tr>
  41. </table>
  42. </form>";
  43. }
  44. ?>

i formularz nie wysyła się sam po upłynięciu czasu.
Może mi ktoś pomóc jak mam to zrobić ?

Ten post edytował szczabik 26.11.2008, 20:22:13
Go to the top of the page
+Quote Post
erix
post 26.11.2008, 20:41:04
Post #26





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Ok, submit, ale submit czego? Musisz dać obiekt formularza do tego. Poszukaj w Google, tego jest pełno.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
szczabik
post 26.11.2008, 21:44:24
Post #27





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Zrobiłem tak
  1. <?php
  2. if (isset($_POST['submit'])) {
  3. echo 'Test';
  4. } else {
  5.  
  6. echo "<script type=\"text/javascript\">
  7. var ile=12;
  8.  
  9. function stoper()
  10. {
  11. godzin=Math.floor(ile/3600);
  12. minut =Math.floor(ile/60)%60;
  13. sekund =ile%60;
  14. document.getElementById('div1').innerHTML = 'Pozostalo: '+minut+' minut '+sekund+' sekund';
  15. ile--;
  16.  
  17. if(ile<0){
  18. clearInterval(intervalHandler);
  19. alert(\"Czas na rozwiązanie quizu minoł!\");
  20. setTimeout(\"document.formularz.submit()\", 3000)
  21. }
  22.  
  23. }
  24. var intervalHandler=setInterval(stoper,1000);
  25.  
  26.  
  27.  
  28. </script>
  29.  
  30. <div id=\"div1\"></div>";  
  31.  
  32. <form name='formularz' method='post'>
  33. <table cellpadding='0' cellspacing='0' class='center'>
  34. <tr>
  35. <td align='center' colspan='2'>
  36. <input type='submit' name='submit' value='Dodaj' class='button'>
  37. <input type='reset' value='Wyszyść' class='button'>
  38. </td>
  39. </tr>
  40. </table>
  41. </form>";
  42. }
  43. ?>

i się nie wysyła po odliczeniu czasu
Go to the top of the page
+Quote Post
erix
post 26.11.2008, 23:05:22
Post #28





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




A jakiś błąd wysypuje?


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
szczabik
post 27.11.2008, 07:35:19
Post #29





Grupa: Zarejestrowani
Postów: 226
Pomógł: 1
Dołączył: 13.05.2008

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


Właśnie nic żadne błąd się nie pojawia po odliczeniu czasu pojawia się alert. Czas na rozwiązanie quizu minął i potem powinien się sam formularz wysłać po 3 s ale nic się nie dzieje i się nie wysyła

Ten post edytował szczabik 27.11.2008, 07:36:02
Go to the top of the page
+Quote Post
erix
post 27.11.2008, 12:06:43
Post #30





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Cytat
message: Statement on line 1: The Object does not implement [[Call]]
Backtrace:
Line 1 of unknown script
document.formularz.submit()


Kolejny raz powtarza się ten sam błąd. Nie nazywajcie elementów formularza tak, jak predefiniowane metody/zmienne. tongue.gif


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 - 16:27