Dynamicky pregenrovanie formuláru

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

Ahoj,

potreboval by som trocha naviesť, lebo moje riešenie funguje iba z časti. Mám formulár, je to v podstate editovateľná tabulka, ktorá má X ridadkov a Y stĺpcov, kde každá bunka je textový input. Hore nad touto tabuľkou je selectBox (tiež je súčasťou toho istého formuláru), ktorý pri zmene jeho hodnoty má vygenerovať v tabuľke odpovedajúci počet riadkov s predvyplnenými údajmi.

Všetko by fungovalo ako chcem, ale problém je práve pri pregenerovaní komponenty formuláru AJAXom, pri onChange evente vyvolanom selectBoxom sa síce odchytí signál a do osblužnej metódy sa predá premenná, ktorá určuje počet a typ predvyplnených riadkov v dynamickej tabuľke, ale do továrničky pre vygenerovanie nového formuláru sa mi táto hodnota podľa všetkého už nepredá. Keď som skúšal miesto generovania celého formulára pri evente onChange vypísať do stránky aspoň nejaký text to ide v pohode, ale ak chcem pregenerovať celú komponentu tá sa síce pregeneruje, ale stratí sa mi hodnota premennej, ktorá určuje predvyplnený obsah tabuľky.

Toto je časť kódu z presenteru, kde sa pri evente onChange nastaví $this->param1

/** handler for select
    @param int
*/
public function handleSelect($value){

        $this->param1 = $value;
        $this->template->_form = $this['profitExpensesForm'];


    if($this->isAjax()){

        $this->redrawControl('functionSelect');
        $this->redrawControl('formWrapper');
        $this->redrawControl('contentWrapper');
    }
}

/** profit expenses form factory
    @return /Form
*/
protected function createComponentProfitExpensesForm()
{
    $profit = new ProfitExpensesFactory($this,$this->param1);
    return $profit->createProfitExpensesFormFactory();
}

A tu v továrničke už hodnotu parametru pri pregenerovaní nemám

/** Constructor
    */
    public function __construct($presenter,$param=null){
        $this->presenter = $presenter;



        }
    }

Díky za každú radu.