ztráta ID po odeslání formuláře
- Dave3991
- Člen | 14
Nette 2.0.3
PHP 5.4.3
problém je v tom že, když načtu formulář tak ID se zobrazuje správně ovšem jakmile odešlu formulář, tak se ID ztratí a v dumpu se zobrazí pouze hodnota z komentáře (textového pole comment), nějak nevim co s tim ? čet jsem tady něco o action, ale nějak jsem to nepochopil/neuměl jsem to aplikovat.
protected function createComponentCommentForm() {
$id = $this->getParam('id');
$form = new Form;
$form->setMethod('post');
$form->addText('id','id clanku',12)
->setDefaultValue($id)
->setDisabled(True)
->addRule(Form::INTEGER);
$form->addTextArea('comment', 'Váš komentář:', 70, 20)
->addRule(\Nette\Forms\Form::MAX_LENGTH,"maximálně %d znaků",500);
$form->addSubmit('save', 'odeslat komentář');
$form->onSuccess[] = callback($this, 'commentFormSubmitted');
return $form;
}
public function commentFormSubmitted(Form $form){
//dump($form);
$formValues = $form->getValues();
dump($formValues);
}
edit: Jsme blbec, DISABLED části formuláře se neodesílají – vyřešeno
Editoval Dave3991 (15. 11. 2013 16:49)
- Oli
- Člen | 1215
S tim action se to ma tak: Prijdes rekneme na
Article:default 5
. Metoda action se provede pred vykreslenim i po
odeslani formulare (znovu). Proto je taky idealnim mistem pro plneni formulare
daty. Vypada to potom nejak takhle:
public function actionDefault($id)
{
$this['commentForm']->setDefault(array(
. 'id' => $id,
. 'comment' => $mujSkvelejKomentar
. ));
}
- sKopheK
- Člen | 207
Tohle se mi stalo, když jsem formulář vykresloval u akce, která nebyla definována v presenteru – tudíž se do akce formuláře nedostaly povinné parametry.
Např. jsem měl actionEdit
a v ní vykreslil formulář. Na
actionEdit
jsem měl odkaz v šabloně
n:href="edit $id
, ale v presenteru už jsem němel
public function actionEdit($id)
.