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
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
));
}
}
- Majkl578
- Moderator | 1364
Twista napsal(a):
…
To, co tam má, je správně, viz release notes pro 2.0.4, 2. bod.