„Nekonečný“ rozklikávací formulář

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Jakub Šulák
Člen | 222
+
0
-

Mám jeden problém. Potřebuji udělat formulář, kde se po výběru nějaké options v selecboxu zobrazí položka „Hodnota 1“ (textbox). Po napsání prního písmene by se měl pod to přidat textbox „Hodnota 2“, takto až do nějakého libovolného N.

Nyní mám:

<?php
	$form = new AppForm($this, 'editParam');
        $form->addGroup();
        $form->addText('name', 'Název')
             ->addRule(Form::FILLED,'Název musí být vyplněn.');
        $form->addSelect('type', 'Typ parametru',array(Param::TEXT=>'zadání hodnoty',Param::SELECT=>'výběrový'))
             ->addCondition(Form::EQUAL, Param::SELECT)
             ->toggle('sendBox');
        $form->addGroup()->setOption('container', Html::el('div')->id('sendBox'));
        $form->addSelect('multichoice', 'Více možností', array('ne','ano'));
        // jednotlive moznosti
        $paramOptions = $form->addContainer('options');
        for ($i=1; $i<=self::MAX_OPTIONS_OF_PARAM; $i++){
          $paramOptions->addText((string)$i, 'Hodnota '.$i)
                     ->addCondition(Form::FILLED)
                     ->toggle('option['.($i+1).']');
        }

        $form->addGroup();
        $form->addSubmit('save', 'Uložit')
             ->onClick[] = array($this, 'onSave');
?>

Toto bohužel nefunguje (po vybrání ‚type‘=‚výběrový‘ se vypíše rovnou všech MAX_OPTIONS_OF_PARAM inputů).

Jde tedy o to, jak spojit funkci containeru (pro option[1], abych mohl pak inputy zpracovávat jako pole) a také funkce toggle().
Díky za radu (jak udělat v Nette – ručně bych si to udělat dokázal).