Nette form nepošle signál

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
jashin
Člen | 34
+
0
-

Vytvářám formulář přes Nette Forms (jeden input jeden submit):

Factory:

<?php
		$form = new Form();
		$form->addText('test', 'Test');
		$form->addSubmit('send');
		$form->onSuccess[] = function(Form $form) {
			throw new \Exception('Test');
		};

		return $form;
?>

Presenter:

<?php
	protected function createComponentFilter() {
    	return $this->tagFilterComponent->create();
	}
?>

Latte:

<?php
{block leftContent}
    {control filter}
{/block}
?>

Formulář se normálně vykreslí. Po kliknutí na tlačítko se odešle, ale onSuccess se neprovolá. Když se podívám na ten request tak se odešle jako POST. Jsou v něm data z „test“ inputu, ale signál žádný.

V čem je problém?

Edit:
Teď jsem si všiml, že form nemá ani action.

Editoval jashin (29. 4. 2017 10:40)

CZechBoY
Člen | 3608
+
0
-

Urcite vytvaris Nette\Application\UI\Form?

jashin
Člen | 34
+
0
-

Nette\Forms\Form :X

Díky

Pix
Člen | 5
+
0
-

Ahoj,

mám podobný problém jako kolega výše – onSuccess se nezavolá a místo toho opět proběhne renderDetail()

	use Nette\Application\UI\Form;


public function renderDetail($id)
{
    $proposal = $this->proposals->find($id);
    if (!$proposal) {
        $this->error('Návrh nebyl nalezen');
    }

    $this->template->proposal = $proposal;
    $this->template->comments = $proposal->getComments();
}


protected function createComponentCommentForm()
{
    $form = new Form;
    $form->addText('name', 'Jméno:');
    $form->addSubmit('submit', 'Odeslat');
    $form->onSuccess[] = [$this, 'commentFormSucceeded'];
    return $form;
}

public function commentFormSucceeded(Form $form, $values)
{
    $this->redirect('Homepage:');
}

Editoval Pix (12. 6. 2017 8:33)