ajaxové formuláře, payload a snippety
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- ondrique
- Člen | 16
Ahoj,
mám problém s odesíláním ajax formuláře pomocí livequery. Při prvním
odeslání vše proběhne v pohodě, při druhém dojde k přesměrování.
Kód je následující:
js:
<script>
$(function () {
$("form").livequery('submit',function () {
$(this).ajaxSubmit();
return false;
});
$("form :submit").livequery('click',function () {
$(this).ajaxSubmit();
return false;
});
});
</script>
fce na zpracování formuláře
<?php
public function formSubmitted(SubmitButton $form) {
$this->invalidateControl('form');
if(!$this->isAjax())
{
$this->redirect('default');
}
}
?>
Když do fce zpracovávající form přidám $this->sendPayload(); tak už k přesměrování nedochází, ale už se pro změnu neodešle v payloadu kód snippetu. Když však do payloadu něco sám přidám ($this->payload->test = 1;) tak se ta proměnná v payloadu odešle.
<?php
public function formSubmitted(SubmitButton $form) {
$this->invalidateControl('form');
if(!$this->isAjax())
{
$this->redirect('default');
}
else {
$this->sendPayload();
}
}
?>
Rád bych dosáhnul toho, že se bude možno formulář ajaxově odeslat i podruhé a i podruhé se mi překreslí snippet :) Poradíte? Díky moc!
Nette 0.9.3, PHP 5.2