ugrás a tartalomhoz

setTimeout('document.myForm.submit()',5000);

figyuri · 2009. Május. 30. (Szo), 13.23
Sziasztok, -keszitettem egy form -ot, s azt szeretnem, hogy az elore megadott idoben elkuldje fuggetlenul attol, hogy az elkuldes gombra kattintott vagy nem, persze ha hamarabb elkeszult, s elkuld gombot nyomja akkor is kuldje el.
Raadasul meg a hatralavo idot folyamatosan is kell mutatnom.

Koszonom : -gyuri-

u.i.: ide irom hol tartok (nezegettem a keresokben, de mindenhol csak a hasonlo problemat talaltam, megoldast nem... :-( ):

<html>
<head>
</head>
<body>
<SCRIPT language="JavaScript">
function submitform()
{
document.myform.submit();
setTimeout('document.myForm.submit()',5000);
}
</SCRIPT>

<form name="myform" action="index-6.php">
Search: <input type='text' name='query'>
<A href="javascript: submitform()">Elküld</A>
</form>
</body>
</html>

 
1

miért duplázol?

gex · 2009. Május. 30. (Szo), 13.35
ezt az eredeti szálba is beírhatad volna...
3

mert ez mar mas

figyuri · 2009. Május. 30. (Szo), 14.10
Szia, valamennyire igazad van, de ha megnezed mar nem PHP hanem JS (amennyiben valaki csak a JS -t nezi sose talal ra a kerdesemre), s raadasul talaltam a megoldashoz kozeli eredmenyt a neten, csak nem mukodik...

udv.: -gyuri-
2

Ez Ajax segítségével könnyen

mgergo90 · 2009. Május. 30. (Szo), 13.44
Ez Ajax segítségével könnyen megoldható, nézz utána a neten hogy hogyan, a lényeg, hogy egy függvény kiolvassa az összes értéket a formból és elküldje a szervernek, az idő kijelzésre meg biztosan találsz 1000 féle megoldást csak keresni kell :)
4

Ágyúval verébre?

Adam · 2009. Május. 31. (V), 11.51
Minek ide keverni az AJAX-ot? Ahogy a mintájból is látszott, ő szimplán submit-elni akarja a form-ját...

Neki szimplán az kell, hogy az oldal betöltődésekor elindítson egy timer-t, ami lejártával submit-eli a form-ot. Illetve ha a user rákattint a submit-re maga, akkor törölje ezt a timer-t.

window.onload = function()
{
    // A form HTML elemunk
    var formObject = document.getElementById('formId');

    formObject.onsubmit = function()
    {
        // Ha elkuldjuk a form-unkat, akkor toroljuk az interval-t
        clearInterval(this.timer);
        return true;
    }

    // Ennyi masodperctol szamolunk vissza
    formObject.secondsLeft = 5;
    // "Visszaszamlalo" inicializalasa
    formObject.timer = setInterval(function()
    {
        // Kiiratjuk a hatramaradt masodpercet es csokkentjuk a hatramaradt idot
        document.getElementById('timer').value = --formObject.secondsLeft;
        // Ha nem maradt mar hatra idonk, akkor elkuldjuk a form-t
        if (formObject.secondsLeft == 0) {
            formObject.submit();
        }
    });
}
A hozzá tartozó HTML pedig:

<p>Time left: <b id="timer">5</b> second(s)</p>
<form action="" method="post" id="formId">
    <input type="submit" value="Submit form" />
</form>
Persze ha használsz valami JavaScript könyvtárat, akkor szebben meg lehet oldani — anélkül is —, ez csak az elvi működést hivatott reprezentálni.