ajax form se dvěma submit button
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Oli
- Člen | 1215
Zdravím,
potřeboval bych poradit. Mám na stránce několik formulářů a chtěl bych
je odesílat ajaxově. Jeden formulář má dvě odesílací tlačítka,
přičemž každé dělá něco jiného. A zde je právě problém, že mě to
nefunguje ajaxově. Asi to bude nějaká blbost, ale nevím si s ní rady. Mám
Nette 2.0.8 a PHP 5.3.x. Pro ajax používám ajax s jQuery a
$('form.ajax').live('submit', function (event) {
event.preventDefault();
$.post(this.action, $(this).serialize());
});
Když bych použil jedno tlačítko tak to funguje:
public function createComponentEditVideo()
{
$form->addSubmit('preview', 'Odeslat');
$form->onSuccess[] = callback($this, "previewSend");
}
public function previewSend(Form $form)
{
if($form->values->filename != null)
{
$this->flashMessage('Náhled', 'success');
$this->invalidateControl('flashMessages');
$this->video = $this->parseVideoEntry($form->values->filename);
}
$this->invalidateControl('video');
}
Při použití více tlačítek mě to už ale nefunguje:
public function createComponentEditVideo()
{
$form->addSubmit('preview', 'Náhled')->onClick[] = callback($this, 'previewSend');
$form->addSubmit('create', 'Vytvořit')->onClick[] = callback($this, 'editVideoSubmitted');
}
public function previewSend(SubmitButton $button)
{
$form = $button->form;
if($form->values->filename != null)
{
$this->flashMessage('Náhled', 'success');
$this->invalidateControl('flashMessages');
$this->video = $this->parseVideoEntry($form->values->filename);
}
$this->invalidateControl('video');
}
Díky zajakékoli rady!
- jetpack
- Člen | 71
A když se koukneš do nějaké console tak vrátí se ti nějaký snippet
při tom požadavku?
Popř. jaká data se ti vrací?
A hlavně použíj $(‚form‘).ajaxSubmit();