Zpracování formuláře po odeslání

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

Zdravím,
mám následující problém, mám vytvořený formulář a po jeho odeslání chci, aby se data z něj uložila do databáze. Jenže po kliknutí na Submit button se nic neděje, nevíte proč?

HomepagePresenter.php

class HomepagePresenter extends BasePresenter
{
  private $klientRepository;
  private $ucetRepository;

protected function startup(){
   parent::startup();
   $this->klientRepository = $this->context->klientRepository;
   $this->ucetRepository = $this->context->ucetRepository;
  }

  protected function createComponentCreateUser(){
    $c_cli_f = new Form();
    $c_cli_f->addText('jmeno','Jméno*:')
            ->setRequired('Povinné pole!');
    $c_cli_f->addText('prijmeni','Příjmení*:')
            ->setRequired('Povinné pole!');
    $c_cli_f->addText('adresa','Adresa*:')
            ->setRequired('Povinné pole!');
    $c_cli_f->addText('cislo_op','Číslo ob. průkazu*:')
            ->addRule(Form::INTEGER,'Musí být zadáno platné číslo!')
            ->setRequired('Povinné pole!');
    $c_cli_f->addText('telefon','Telefon:');
    $c_cli_f->addText('email','Email*:')
            ->AddRule(Form::EMAIL,'Zadejte platný email!')
            ->setRequired('Povinné pole!');
    $c_cli_f->addPassword('heslo','Heslo*:')
            ->setRequired('Povinné pole!');
    $c_cli_f->addPassword('heslo_check','Heslo znovu*:')
            ->setRequired('Povinné pole!')
            ->addRule(Form::EQUAL,'Hesla se neshodují!',$c_cli_f['heslo']);
    $c_cli_f->addSubmit('create','Vytvořit');
    $c_cli_f->onSuccess[] = $this->createUserFormSubmitted;
    return $c_cli_f;
  }

  public function createUserFormSubmitted(Form $c_cli_f){
    $this->klientRepository->createUer($c_cli_f->values->jmeno, $c_cli_f->values->prijmeni, $c_cli_f->values->adresa, $c_cli_f->values->cislo_op, $c_cli_f->values->telefon, $c_cli_f->values->email, md5($c_cli_f->values->heslo));
    $this->flashMessage('Klient přidán do systému...');
    $this->redirect('this');
  }
}

KlientRepository.php

class KlientRepository extends Repository
 {
  public function createUser($jmeno,$prijmeni,$adresa,$cislo_op,$telefon,$email,$heslo){
    return $this->getTable()->insert(array(
    'JMENO' => $jmeno,
    'PRIJMENI' => $prijmeni,
    'ADRESA' => $adresa,
    'CISLO_OP' => $cislo_op,
    'TELEFON' => $telefon,
    'EMAIL' => $email,
    'HESLO' => $heslo
    ));
  }
}
Twista
Člen | 48
+
0
-

Proxymus napsal(a):

$c_cli_f->onSuccess[] = callback($this,'createUserFormSubmitted');

Editoval Twista (12. 10. 2012 1:09)

Majkl578
Moderator | 1364
+
0
-

Twista napsal(a):

To, co tam má, je správně, viz release notes pro 2.0.4, 2. bod.

Proxymus
Člen | 7
+
0
-

zkoušel jsem to i s tím callback(…), ale ani to nepomohlo.

Majkl578
Moderator | 1364
+
0
-

Je Form Nette\Application\UI\Form a ne Nette\Forms\Form?

Proxymus
Člen | 7
+
0
-

Majkl578 napsal(a):

Je Form Nette\Application\UI\Form a ne Nette\Forms\Form?

Bylo to tím, už to funguje, díky moc!