Různé metody pro zpracování jednoho formuláře
- bluray
- Člen | 178
Dobrý den, mám formulář, který potřebuju zpracovávat na různých částech webu různými metodami. jak se to dá udělat? zkoušel jsem toho, ale vždy se volá jen jedna metoda:
public function renderDefault()
{
$this->prvni = true;
}
public function createComponentForm()
{
if($this->prvni)
$form->onSuccess[] = $this->zpracujPrvni;
else
$form->onSuccess[] = $this->zpracujDruhy;
}
Díky za radu
- David Matějka
- Moderator | 6445
Formular se zpracovava na urovni signalu (handle), tery pred render metodou. viz https://doc.nette.org/…n/presenters#…
Editoval matej21 (28. 10. 2014 22:46)
- David Matějka
- Moderator | 6445
precti si odkazovanou stranku v dokumentaci, vola se oboje (nejdriv action, pak render)
- bluray
- Člen | 178
Ještě mám jeden problém. mám následující url: www.neco.cz/pokus?… když použiju metodu action, tak po kliknutí na tlačítko formuláře se mi odešle na adresu www.neco.cz/pokus, tedy není tam parametr a web mi spadne, protože se nenačtou data z databáze. když použiju handle metodu, nefunguje to taky, protože se nezavolá metoda edit, ale zase add. Posílám kod:
<a n:href="Presenter:edit id => $data->id">Upravit</a> //odkaz na formulář pro editaci
//Formulář
protected function createComponentAddItemForm(){
$form = new Form();
if($this->edit)
$form->onSuccess[] = $this->edit;
else
$form->onSuccess[] = $this->add;
}
public function edit($form, $values){
}
public function add($form, $values){
}
public function actionEdit($idCaravan){
$this->edit = true;
}
public function renderEdit(){
if($this->edit)
$this->template->title = "Editovat";
else $this->template->title = "Vytvořit";
}
Díky
- David Matějka
- Moderator | 6445
proc ze sablony generujes url s parametrem s nazvem „id“ a v actionEdit ocekavas idCaravan ?