Form – nefunkční callback
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- MikeLacroix
- Člen | 60
Zdravím, u formuláře se mi nevolá onSuccess callback.
Na localhostu vše funguje, jak má (po odeslání formuláře se vypíše hláška z exit(…)). Na ostrém serveru se znovu zobrazí stránka s formulářem.
Presenter:
protected function createComponentNewsForm()
{
$form = new Form;
$form->addText('title', 'Title')
->setAttribute('placeholder', 'Title')
->setRequired('Please enter the title.');
$form->addUpload('image', 'Image')
->addCondition(Form::FILLED)
->addRule(Form::IMAGE, 'Image has to be JPEG, PNG or GIF.');
$form->addTextarea('text', 'Text')
->setAttribute('placeholder', 'Your text')
->setAttribute('rows', 10)
->setAttribute('cols', 70)
->setAttribute('class', 'wysiwyg')
->setRequired('Please enter text.');
$form->addHidden('id', null);
$form->addSubmit('send', 'Publish');
if ($this->id) {
$values = $this->news->getById($this->id);
$form->setDefaults($values);
}
$form->onSuccess[] = $this->newsFormSucceeded;
return $form;
}
public function newsFormSucceeded($form, $values)
{
exit('form succeeded');
}
template:
...
{control newsForm}
...
Zajímavé je, že pokud z formuláře odstraním pole ‚image‘, vše funguje, jak má. Nějaké nápady, proč se na ostrém serveru nevolá callback?
Editoval MikeLacroix (25. 2. 2016 21:35)
- MikeLacroix
- Člen | 60
Chybu by formulář obsahovat neměl – žádná flash zpráva se napředává, javascript taky nic nehlásí. Osekal jsem příklad na uplne to nejjednodušší, co působí problém – je to skutečně to upload pole:
protected function createComponentNewsForm()
{
$form = new Form;
$form->addUpload('image', 'Image');
$form->addSubmit('send', 'Publish');
$form->onSuccess[] = function (Form $form) {
$this->newsFormSucceeded($form, $form->getValues(TRUE));
};
return $form;
}
public function newsFormSucceeded($form, $values)
{
exit('form succeeded');
}
A developer konzola v chromu při odesílání formuláře hlásí: „POST http://www.floorballsloopen.com/admin/news/edit 502 (Bad Gateway)“