Autor Zpráva
Legáček
Profil
Zdravím,
doufám, že sem příliš často nechodím pro rady. Určitě tu nechci napsat celý script jen bych poprosil pár rad jak problém zpracovat.

(Zkráceně)
Chtěl bych vytvořit pořadník, odkud budou po 2 minutách postupně uživatelé vybráni, aby mohli něco dělat.

Pokud kliknou uživatelé na "Zapiš se na pořadník" zapíší se do tabulky (mysql) s jejich ID (Auto) a jejich jmény. Na stránce se zobrazí pořadník (výpis z mysql), kde uživatelé uvidí kolikátý jsou. // V tomto jsem neměl problém

Vedle pořadníku na stránce bude odpočet a ID kdo je právě na řadě. (např. #4 je na řadě a má 1:24 minut) hlavně submit, přes který se uživatel #4 dostane na postup.php stránku kde něco napíše. Pokud na postup.php bude více než 2 minuty(uživatelé také uvidí na předešlé stránce kolik má #4 času) automaticky ho to vykopne. A na předešlé stránce se načte #5 a čas 2:00 minuty pro dalšího uživatele. A takhle dokola až do posledního zapsaného uživatele.

1)Odpočítávání 2 minut jsem vyřešil JS. --> chyba, když refreshnu stránku čas se "vynuluje" zpět na 2 min :(
2)Po 2 minutách přeměnit #4 na #5 bych řekl, že se musí JS cyklem ?(i PHP, ale uživatel musí refresh)
3)Jen nechápu jak uživateli napsat že má čas 2 min a pak že už ho stránka vykopne.(zase zkouším myslet a řekl bych, že se to zapíše do mysql, ale jak udělat to že se to i tam se odečítá čas?)

*Ano myslet je ***** vědět =))
**Nesnáším JS, jen kvůli tomu aby uživatelé viděli přesný čas to dělám.
Legáček
Profil
Omlouvám se, ale jestli by to mohlo být přidáno spíše do "Jak něco udělat?" kategorie .. Děkuji :)
xmark
Profil
Legáček:
Ztratil jsem se po "odkud budou po 2 minutách".

Zkus to trochu přeformulovat a popsat buď konkrétněji - na úrovni PHP, JS, nebo radši naopak více obecně - čeho chceš dosáhnout.
Legáček
Profil
OK, obecně ...

-Každý uživatel bude mít 2 minuty na to, aby navštívil stránku 2. Pokud tam bude déle vykopnu ho na stránku 1.
-Na stránce 2, nebude víc jak 1 uživatel.
-Na stránce 1, by mělo být odpočítavadlo 2 minut + jaký uživatel je právě na stránce 2, aby jiní uživatelé viděli kdy přijdou na řadu a kolik má uživatel na stránce 2 ještě času.
-Na stránce 1, pokud bude čas 0:00 čas, tak se čas přetočí zas na 2 minuty a bude na řadě další uživatel.

Uživatele budu mít určitě zapsaný v databázi.
Otázka zní: Jak docílit toho, aby se tam zapisoval i čas asi počáteční(2:00) a ten konečný (0:00).

Trapí mě ještě to, že když jsem si tam dal ten odpočet 2 minut na stránku 1, tak po refreshi se mi zas "přenulují" na 2:00 viz.
<span id="minuty"></span>
        <script type="text/javascript">

            var start = 120; // nastavení času
            Number.prototype.toMinutesAndSeconds = function() {
	          var nbr = Math.floor(this / 60);
	          return (nbr+":")+(((nbr=(this-(nbr*60)))<10)?"0"+nbr:nbr);
            }

            function display(seconds, output) {
	          output.innerHTML = (--seconds).toMinutesAndSeconds();
	           if(seconds > 0) {
		          window.setTimeout(function(){display(seconds, output)}, 1000);
	             }
	           if(seconds == 0){
              display(start, document.getElementById("minuty")); // tímto by se měl odpočet pořád opakovat
                }
              }
           display(start, document.getElementById("minuty")); // po načtení stránky spustím odpočet
        </script>
Legáček
Profil
Napsal jsem to zase k nepochopení? Jestli-ne a nikdo mi neodpoví, tak to chápu musím si to vyřešit sám.

Jinak přeju veselé svátky a šťastný Nový rok všem co chodí na tohle fórum.
xmark
Profil
Legáček:
Jak docílit toho, aby se tam zapisoval i čas asi počáteční(2:00) a ten konečný (0:00).

No, moc srozumitelnější to není. Čas počáteční jsou vždy dvě minuty, čas konečný nula minut. Druhá možná interpretace je, že čas počáteční i konečný můžeš vždy získat pomocí php funkce mktime().
Jinak obecně.. ujasnil bych si, co všechno můžeš a musíš udělat pomocí php a co můžeš a musíš udělat pomocí JS. A doplním, že JS může volat i php, pokud to potřebuješ. Kombinaci těch dvou technologií se říká AJAX.

Víc teď neporadím, možná zabere někdo jiný.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0