Výpis dat formuláře, který je složený z checkboxů
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- Mesiah
 - Člen | 240
 
Dobrý den,
poslední 2 dny se trápím s jednou svou komponentou. Teď pro změnu řeším problém, kdy mám sestavený formulář (checkboxy s name=„product[id]“) jenže, ať už zaškrtnu jakýkoliv checkbox, tak po callbacku onSubmit dostávám prázdné pole hodnot… Můžete mi prosím poradit, co dělám špatně? Kód přikládám, pokud bych něco opomněl, tak mi prosím dejte vědět…
<?php
public function createComponentForm($name)
{
	$form = new AppForm($this, $name);
	$form->addSubmit('delete', 'Smazat');
	$form['delete']->getControlPrototype()->class('my-button');
	$form->onSubmit[] = callback($this, 'onDeleteItems');
	return $form;
}
public function onDeleteItems(AppForm $form)
{
	if ($form['delete']->isSubmittedBy())
	{
		$values = $form->getValues();
		dump($values);
	}
}
public function render()
{
	$template = parent::createTemplate();
	$template->setFile(dirname(__FILE__) . '/BasketControl.phtml');
	foreach ($this->__items as $item)
	{
		$this['form']->addCheckbox("product".$item->id_product, "Produkt");
		$this['form']["product".$item->id_product]->getControlPrototype()->class('clear');
		array_push($products, array('checkbox' => $this['form']["product".$item->id_product], 'id' => $item->id_product, 'name' => $item->producer . " - " . $item->type, 'count' => $item->count));
	}
	$template->products = $products;
	$template->render();
}
?>
					Editoval Mesiah (14. 10. 2010 22:55)

- arron
 - Člen | 464
 
Data do formulare plnis az ve funkci render() tzn. nejsou
k dispozici, kdyz se vola obsluzny handler. Nette pak nema z ceho overit, ze
odeslana data jsou v poradku a tak je zahodi.
Logiku z toho foreach z render funkce zkus nejak rozumne presunout do te tovarnicky na formular.
Editoval arron (14. 10. 2010 22:59)