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

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

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)