Visszaszámlálás
Azt szeretném kérdezni hogyan tudom megcsinálni hogy ugye a legördülő menü nekem most így van:Arra lennék kíváncsi hogy hogyan lehet megcsinálni azt hogy ha rákattintok a "Submit"-ra akkor ne azonnal töltse fel az adatbázisba az értéket hanem a kiválasztott érték*1 óra.
És ha rákattint a "Submit"-ra akkor kihozzon egy számlálót ami a (kiválasztott érték*1 óra)-tól számol vissza.
Ezt gondolom javascript-ben kell megcsinálni, de nem értek ahhoz úgyhogy segítsetek pls.
Remélem érthetően fogalmaztam:)
Válaszotokat előre is köszönöm
■ <form action="processes.php" method="post" name="form1" id="form1">
<option value='1'>1<option value='2'>2<option value='3'>3<option value='4'>4<option value='5'>5
<option value='6'>6<option value='7'>7<option value='8'>8<option value='9'>9<option value='10'>10
<option value='11'>11<option value='12'>12</select><input type=submit value='Submit'></form>
És ha rákattint a "Submit"-ra akkor kihozzon egy számlálót ami a (kiválasztott érték*1 óra)-tól számol vissza.
Ezt gondolom javascript-ben kell megcsinálni, de nem értek ahhoz úgyhogy segítsetek pls.
Remélem érthetően fogalmaztam:)
Válaszotokat előre is köszönöm
Írd körül jobban
Szerk1:
Ha beírtad a hiányzó részt, akkor adsz neki egy nevet (name), ez lesz a változó neve, mely tartalmazza majd az egyik kiválasztott értéket (value), azaz a név nevű vátozó értéke ha nem üres, akkor szorzom 1 órával, vagy amennyivel szeretnéd.
Szerk2:
Ha azt szeretnéd hogy annyi órát várjon feltöltés előtt amennyit kijelölt a felhasználó, akkor azt javaslom, hogy a form és a feltöltő oldal között tegyél be egy "loading" oldalt. Van egy olyan meta tag, amivel bizonyos idő után újra lehet tölteni az oldalt, de php oldalon is lekezelheted. Egyszerűen a kiválasztott értéket átadod a "loading" lapnak, majd ha a kiválasztott idő letelik átdob a feltöltést végző lapra. És JS se kell hozzá. :)
PHP:
Ha ragaszkodsz a JS-hez, ezt találtam neked:
prog.hu
ha azt akarod, csináld máshogy:)
hogy késleltetve legyen feltöltve. Ahol vissza akarod kapni a megfelelő értéket(feltöltött adatot), ott ellenőrizd le, hogy a tartalom küldése óta eltelt-e az a megadott idő amit bekértél. Ehhez egyszerüen tárold el a time() étéket, és a lejárathoz pedig $ennyioraszor*60*60 at.
Az, hogy órákig a böngészőben tartsd a felhazsnálót. Az lehetetlen. (vagy jó sok alertet kell írnod:))
Mi a cél?
s_volenszki
A cél az, hogy
Ez egy olyan lehetőség hogy itt tudsz "munkával" pénzt keresni ha pl kiválasztod hogy 8 akkor megkapod az órabér * a kiválasztott érték( most legyen 8).
És én azt szeretném hogy ne azonnal kapja meg hanem amit kiválasztott pl. most 8 , óra múlva, és ezalatt visszaszámol a kiválasztott érték (8)*óra.
Ja meg még azt is meg szeretném kérdezni hogy amíg itt dolgozik szóval amíg nem járt le ez az idő addig semmi mást ne tudjon csináni az oldalon.
ok
Aztán amikor a kapott pénzeket iratod ki,(vayg csinálsz valami mást) ott meg egyszerüen ellenőrizd azt, hogy a kifizetés ideje elmúlt e már.
Tudom írtad, hogy nem vagy profi JavaScript-ben.
Egy, a felhasználó által meghatározott ideig akarod a felhasználó figyelmét (böngészőjét) az oldaladon tartani és az ott eltöltött idő alapján jutalmazni.
Csak akkor jutalmazod, ha a teljes idő lejárt, vagy részidőt is "kifizetsz"? Illetve ha a visszaszámlálás kliesn oldalon megy akkor ugye te csak a lejáretról tájékozódsz, ha csak...
Én most csináltam valami hasonlót:
Készítettem még régebben egy szöveges tartalmat kiszolgáló rendszerem, ahol is egyre fontosabbá vált tudnom, mennyi időt és milyen aktívan töltenek a felhasználók olvasgatásal. Az alapján, hogy ki mennyi időt tölt ott, rangsorolom őket.
Na most elöljáróban kijelentem, hogy az én megoldásom sem tökéletes, a részleteket majd később!
Amikor a user betölt egy tartlamat, ami pl. lapozgatás nélkül 15 A4-es oldalnyi szöveg, egy adattáblába start cellájába, (munkamenet azonosítójához társítva, hogy tudjam ki az) bevésem a letöltés dátumát. Innentől egy stop cella tartalmát frissítgetem AJAX-szal 1 percenként (asszem erre mondta vbence egy régebbi topicban, hogy Heart beat).
Mivel ezzel csak azt tudom ellenőrizni, hogy a böngészőjében ott maradt-e az oldalam vagy se, ezért még azt a trükköt is bedobtam, hogy minden oldal görgetéskor elmentek egy változót, ami mutatja, hogy gördült-e a szöveg az elmúlt egy percben. Az AJAX kérés ezt is viszi, így kapok némi viszonyítási alapot user olvasási szokásairól, alaposságáról. Ha bármilyen hiba lép fel, csak a legutolsó perc bukik. Az eltöltött idő pedig a start és a stop cellák különbsége. Ezt már ki lehet értékelni.
Tudom, te jelezted, hogy nem vagy toppon js-ből, szerintem viszont a te esetedben előbb utóbb szükségessé válik, hogy értsed!
Mi lesz azokkal, akiknek a gépe, a megválasztott idő utolsó percében fagy le, szakad meg az internet kapcsolata, vagy pusztul ki a te kiszolgálód? Bukta az egész? Szomorúak lesznek!
s_volenszki
Így szeretném
Nem, nem akarom a felhasználó böngészőjét ott tartani(amíg le nem jár bármit csinálhat), hanem pl. ha kiválasztja a 2 órát mondjuk délben akkor a 2 óráért járó pénzt 2 óra múlva töltjök fel az adatbázisba.
Amíg nem járt le ez a 2 óra akkor addig számol vissza hogy még hány óra perc másodperc van még addig.
Most úgy van nekem hogyha rákattint a 2 órára akkor azonnal meg is kapja a 2 óráért járó pénzt, de én úgy szeretném hogy csak 2 óra múlva kapja meg
A work.php tartalma:
jelentkezz be az én felhasználómmal
Név: darkride777
Jelszó: 123456
Munka
Értem.
Tehát a formod ne a pénzt adja meg (pl. 1 órás munka beküldés pillanata: 200801121317), csak írja be a 'pending_works' táblába, hogy user:valaki és work_ends:200801121417, meg status: pending.
Amikor user bejelentkezik (vagy csinál bármilyen letöltődést) ellenőrízd, van-e a nevéhaz tartozó azonosítóval aktuális munka bejegyezve (SELECT * FROM `pending_works` WHERE user = 'valaki' AND statusz = 'pending' AND work_ends < $most) /$most az a bejelentkezés vagy letöltődés pillanata/. Ha van, akkor megadod az érte járó jutalmat és jelölöd valahogy, hogy az már ki lett fizetve, mondjuk status = 'ready'. Célszerű meghagyni, mert később összegezni tudod ki mennyi munkát végzett.
s_volenszki
szerk:
Értelmezd egy kicsit a kliens szerver modellt!
javascript visszaszámlálás
Szóval a kliens oldali megoldások ugyan szépek, de nem szabad a szerver oldalt elhanyagolni.