Kdyby/replicator odeslání formuláře

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

Zdravím, používám Kdyby/replicator a nevím jak si sáhnout na odeslané hodnoty:

	protected function createComponentTicketForm()
	{
        $form = new Nette\Application\UI\Form;

        $users = $form->addDynamic('users', function (Container $user) {
            $user->addText('name', 'Jméno a příjmení:');
            $user->addText('email', 'E-mail:');
        }, 0);

        $users->addSubmit('add', 'Další jméno')
            ->setValidationScope(FALSE)
            ->onClick[] = $this->addCallback;

        $form->addSubmit('send', 'Objednat')
            ->onClick[] = $this->ticketFormSubmit;

        return $form;
	}

    public function addCallback(Nette\Forms\Controls\SubmitButton $button)
    {
        $button->parent->createOne();
    }

    public function ticketFormSubmit(Nette\Forms\Controls\SubmitButton $button)
    {
        //@TODO tto funkce musi mit parametr Nette\Forms\Controls\SubmitButton
        dump($button);
        exit;
    }

Jak si ve funkci ticketFormSubmit sahnout na zadané hodnoty ve formulari?

Editoval motorcb (19. 12. 2015 22:48)

F.Vesely
Člen | 369
+
0
-
  1. Nikde v tom formulari nevidim callback na ticketFormSubmit
  2. Normalne pouzivej $form->onSuccess[] = $this->ticketFormSubmit; a public function ticketFormSubmit($form, $values)...
motorcb
Člen | 552
+
0
-

@F.Vesely: Díky, ale pak se mi formulář odešle i na tlačítko Další jméno což je nežádoucí…

    $users->addSubmit('add', 'Další jméno')
        ->setValidationScope(FALSE)
        ->onClick[] = $this->addCallback;

    $form->onSuccess[] = $this->ticketFormSubmit;


//...

public function ticketFormSubmit(Form $form, $values)
{
    //@TODO tto funkce musi mit parametr Nette\Forms\Controls\SubmitButton
    dump($button);
    exit;
}

Odeslání formuláře bych potřeboval pouze na tlačítko Objednat

F.Vesely
Člen | 369
+
+2
-

Tak ve funkci ticketFormSubmit muzes pouzit if(!$form['send']->isSubmittedBy()) return;

motorcb
Člen | 552
+
0
-

@F.Vesely
Díky. vyřešeno

Taco
Člen | 51
+
0
-

Mohlo by pomoct:

$users->addSubmit('add', 'Další jméno')
	->setValidationScope(FALSE)
	->addCreateOnClick(TRUE);

pak by se to, pokud tam není ještě jiná chyba, mělo chovat podle očekávání.