szczabik
26.11.2008, 14:54:16
Zrobiłem takie coś
<?php
echo "<script type=\"text/javascript\"> function stoper() {
ile=1200;
minut = Math.floor(ile / (1000 * 60)-godzin*60);
sekund = Math.floor(ile / 1000 - godzin*60*60 - minut*60);
window.document.getElementById(\"div1\").innerHTML = ‘Pozostalo: ‘+minut+’ minut, ‘+sekund+’ sekund’;
}
window.setInterval(stoper,1000);
</script>
<div id=\"div1\"></div>";
?>
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 ?
wookieb
26.11.2008, 15:15:11
A gdzie masz zmienną "godzin" ?
szczabik
26.11.2008, 15:49:50
Zrobiłem tak
<?php
echo "<script type=\"text/javascript\"> function stoper() {
ile=1200;
godzin = Math.floor(ile / (1000 * 60 * 60));
minut = Math.floor(ile / (1000 * 60)-godzin*60);
sekund = Math.floor(ile / 1000 - godzin*60*60 - minut*60);
window.document.getElementById(\"div1\").innerHTML = \"Pozostalo: \"+minut+\" minut \"+sekund+\" sekund\";
}
window.setInterval(stoper,1000);
</script>
<div id=\"div1\"></div>";
?>
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ć
wookieb
26.11.2008, 15:55:10
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);
szczabik
26.11.2008, 16:00:58
Zrobiłem tak jak piszesz i nic nie wyświetla
wookieb
26.11.2008, 16:03:36
Literówka...
Kod
sekund =ile%60;
którą mogłeś sobie poprawić....
szczabik
26.11.2008, 16:07:30
Dalej nic się nie wyświetla
wookieb
26.11.2008, 16:10:24
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ć.
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 ?
erix
26.11.2008, 16:44:19
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.
szczabik
26.11.2008, 16:54:47
Może mi ktoś powiedzieć co źle zrobiłem w tej instrukcji warunkowej
erix
26.11.2008, 16:59:49
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
+.
szczabik
26.11.2008, 17:04:12
Zrobilem tak i też nie działa
Kod
if (minut == 0 && sekund == 0){
clearInterval(intervalHandler);
}
wookieb
26.11.2008, 17:04:13
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)
...
szczabik
26.11.2008, 17:06:41
A czy nie prościej
Kod
if(ile==0)
Zrobilem tak i dalej liczy nie zatrzymuje sie na 0
erix
26.11.2008, 17:07:04
Lepiej sprawdzać, czy jest mniejsze/równe zeru, bo podejrzewam, że wyłączasz stoper, gdy wartość jest -1.
szczabik
26.11.2008, 17:14:22
To jak mam to zrobić gdy dojdzie do 0 by się zatrzymało
wookieb
26.11.2008, 17:27:30
Czy to wógóle czytasz co się do ciebie pisze?

Kod
if(ile<=0)
{
clearInterval(intervalHandler);
}
szczabik
26.11.2008, 17:30:11
Zrobilem już tak wcześniej i się nie zatrzymuje
wookieb
26.11.2008, 17:33:06
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
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
wookieb
26.11.2008, 17:46:55
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"
szczabik
26.11.2008, 17:55:59
Jaką funkcją mogę zrobić by samoczynnie wcisnął się przycisk submit w formularzu gdy stoper dojdzie do 0
erix
26.11.2008, 17:58:26
szczabik
26.11.2008, 20:21:14
Zrobiłem tak
<?php
if (isset($_POST['submit'])) { } else {
echo "<script type=\"text/javascript\"> var ile=12;
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);
alert(\"Czas na rozwiązanie quizu minął!\");
window.setTimeout(formularz,10000)
submit();
}
}
var intervalHandler=setInterval(stoper,1000);
</script>
<div id=\"div1\"></div>";
<form name='act1' method='post'>
<table cellpadding='0' cellspacing='0' class='center'>
<tr>
<td align='center' colspan='2'>
<input type='submit' name='submit' value='Dodaj' class='button'>
<input type='reset' value='Wyszyść' class='button'>
</td>
</tr>
</table>
</form>";
}
?>
i formularz nie wysyła się sam po upłynięciu czasu.
Może mi ktoś pomóc jak mam to zrobić ?
erix
26.11.2008, 20:41:04
Ok, submit, ale submit czego? Musisz dać obiekt formularza do tego. Poszukaj w Google, tego jest pełno.
szczabik
26.11.2008, 21:44:24
Zrobiłem tak
<?php
if (isset($_POST['submit'])) { } else {
echo "<script type=\"text/javascript\"> var ile=12;
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);
alert(\"Czas na rozwiązanie quizu minoł!\");
setTimeout(\"document.formularz.submit()\", 3000)
}
}
var intervalHandler=setInterval(stoper,1000);
</script>
<div id=\"div1\"></div>";
<form name='formularz' method='post'>
<table cellpadding='0' cellspacing='0' class='center'>
<tr>
<td align='center' colspan='2'>
<input type='submit' name='submit' value='Dodaj' class='button'>
<input type='reset' value='Wyszyść' class='button'>
</td>
</tr>
</table>
</form>";
}
?>
i się nie wysyła po odliczeniu czasu
erix
26.11.2008, 23:05:22
A jakiś błąd wysypuje?
szczabik
27.11.2008, 07:35:19
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
erix
27.11.2008, 12:06:43
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.
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.