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
+
0
-

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
+
0
-

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.