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)