Nehandluje sa mi viac tlačítok
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Jod
- Člen | 701
Z neakého dôvodu mi prestalo fungovať mazanie vecí cez formulár. Pri editácii položky mám dve tlačítka, edit a delete. Keď kliknem na delete, zavolá sa mi edit :(.
Mám to nejak takto:
<?php
private function &userForm($isEdit = false)
{
$groups = $this->model->getGroupsToSelect();
$form = new AjaxAppForm($this, 'user');
switch($isEdit) {
case true:
$submit = array('name' => 'edit' , 'text' => 'Upraviť');
$group = 'Upraviť užívateľa';
$meth = 'EditClicked';
break;
case false:
$submit = array('name' => 'add', 'text' => 'Pridať');
$group = 'Pridať užívateľa';
$meth = 'AddClicked';
break;
}
$form->addGroup($group);
$form->addText('username', 'Užívateľské meno');
$form->addPassword('password', 'Heslo');
$form->addText('name', 'Meno');
$form->addText('email', 'Email');
$form->addMultiSelect('groups', 'Skupiny', $groups)->addRule(Form::FILLED, 'Vyberte skupinu');
$form->addCheckBox('active', 'Aktívny');
$form['username']->addRule(Form::FILLED, 'Užívateľské meno musí byť vyplnené');
$form['name']->addRule(Form::FILLED, 'Meno musí byť vyplnené');
$form['email']->addRule(Form::FILLED, 'Email musí byť vyplnený');
$form->addSubmit($submit['name'], $submit['text'])
->onClick[] = array($this, $meth);
if($isEdit) {
$form->addHidden('id');
$form->addSubmit('delete', 'Zmazať')
->onClick[] = array($this, 'DeleteClicked');
$form['delete']->setValidationScope(false);
}
else
$form['password']
->addConditionOn($form['add'], Form::SUBMITTED)
->addRule(Form::FILLED, 'Heslo musí byť vyplnené');
return $form;
}
?>
Robí mi to na všetkých formulároch. Keď zmením poradie a dám Delete pred edit, tak sa mi to volá naopak, vždy len DelteClicked.
rev.200
Editoval Jod (25. 1. 2009 21:38)
- David Grudl
- Nette Core | 8218
Nevím, jak je implementováno odesílání formuláře, tak se ptám, jestli se skutečně odešle i název stisknutého tlačítka.