Ručně vykreslovaný formulář s podporou změny pomocí JS
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- pools
- Člen | 3
Ahoj, mám takový malý problém, mám formulář, který se pomocí AJAXU a actionHendler pregenerovává postupně. Pokud ho v šabloně vykreslím normálně jako {widget form} nebo {control form} tak vše normálně funguje. Pokud jej však vykreslím ručně asi takto:
{control vloz begin}
{widget vloz errors}
{var form => $control['vloz']}
{$form['okres_id']->label} {$form['okres_id']->control}<br />
{$form['ku_id']->label} {$form['ku_id']->control}<br />
{control vloz end}
tak se vrátí prázdná stránka. Formulář generuju jako továrničku. Myslím, že chyba bude v to hendleru, ale nevím jak ho přepsat aby to fungovalo:
<?php
function handleLoadData($value, $selectId) {
if ($selectId == "frmvloz-ku_id") {
$sz_typ = $this->formularModel->vypisKatastralniUzemi($value[0]);
$form = $this['vloz'];
$form['ku_id']->setItems($sz_typ);
echo $form['ku_id']->getControl()->render();
}
?>
A továrnička vypadá nějak takto:
<?php
protected function createComponentVloz($name) {
$form = new NAppForm($this, $name);
$form->addSelect('okres_id', 'Okres:', $okres);
$form->addSelect('ku_id', 'Katastrální území')->addRule(NForm::FILLED, 'Zadejte prosím název Katastrálního území.')->skipFirst();
$control_ku_id = $form['ku_id']->getHtmlId();
$form['okres_id']->getControlPrototype()
->onchange("loadUsers(this.value, '" . $control_ku_id . "')");
...
return $form;
?>
Nevítě někdo co s tím?
Editoval pools (11. 11. 2010 9:59)