Automatické odeslání formuláře v nastavených časových intervalech
- patrik82
- Člen | 2
Ahoj, prosím o pomoc:
Mám jednoduchou aplikaci kam si uživatelé píšou volné texty. Všechno funguje až na to, že občas si svoje dílo zapomenou uložit a buď zavřou prohlížeč nebo jim vyexpiruje přihlášení. Chtěl bych, aby na stránce s formulářem běžela nějaká časomíra a jednou za nastavený počet minut se zavolala metoda pro uložení do tabulky a přepsal se nějaký maličký snippet „uloženo v H:i“.
Bohužel vůbec nevím, jak to udělat. Použít něco s jQuery? Co? A jak
z toho zavolat metodu public function save($values)
a předat jí
hodnoty z formuláře?
Můžete mě nasměrovat? Díky.
- h4kuna
- Backer | 740
Koukni na setInterval a pomocí ajaxu odešli form ve zvoleném intervalu.
Tohle s Nette nesouvisí.
- patrik82
- Člen | 2
Díky.
Pomocí nette.ajax.js teď odesílám formulář AJAXem, což je snadné – stačí dát k ručnímu vykreslování
{form textForm, class => ajax}
A k tomu pravidelně pomocí jQuery „klikám“ na tlačítko SAVE, které má ID #frmtextForm-save.
<p id="autosave"></p>
<script type="text/javascript">
$(document).ready(function(){
var int=self.setInterval(function(){ autosave() },300000);
function autosave()
{
var d=new Date();
var t=d.toLocaleTimeString();
$("#frmtextForm-save").trigger('click'); // CLICK
$("#autosave").text('Automaticky uloženo: ' +t);
}
});
</script>
A oblast formuláře neobnovuju. Nic lepšího mě zatím nenapadlo a funguje to.
Ale co kdybych chtěl místo simulace klikání zavolat přímo metodu (třeba i jinou, než je na tlačítku), jak jsem původně chtěl?