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
+
0
-

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)

Martk
Člen | 661
+
0
-

Neobsahuje formulář nějakou chybu?

MW
Člen | 626
+
0
-
$form->onSuccess[] = function (Form $form) {
	    $this->newsFormSucceeded($form, $form->getValues(TRUE));
}

Editoval MW (25. 2. 2016 22:05)

Martk
Člen | 661
+
0
-

@MW Není to to samé jako v ukázce, až na to, že se zavolají funkce dvě?

Editoval Antik (25. 2. 2016 22:08)

MikeLacroix
Člen | 60
+
0
-

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)“