Předání proměnné/hodnoty do komponenty formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- JaxP
- Člen | 62
Zdravím,
mám formulář a chci po překreslení do něj vložit hodnoty
public function createComponentQuestions($step, $another = 0, $test = 0) {
$form = new Nette\Application\UI\Form;
$form->getElementPrototype()->class('ajax');
dump('krok:' . $step);
dump('krok:' . $another);
...
}
a šabloně:
<div n:ifset="$step" class="col-xs-12 text-center">
{control questions, $step}
</div>
Bohužel proměnná tam nikdy nedoleze a prvním parametru je jen název komponenty :(
- JaxP
- Člen | 62
Bohužel potřebuji překreslovat pořád dokola ten stejný formulář, kde se mění hodnoty. Pokud pŕedám hodnoty přes „this->“, tak se vyplní pouze poprvé (pokud zavolám redraw přes handler), ale po odeslání ho potřebuji vykreslit znovu, ale s jinou hodnotou. V tu chvíli se mi předají hodnoty pouze do templaty, ale nikoliv do presenteru.
public function createComponentQuestions() {
...
$form->addHidden('step')->setDefaultValue($this->step);
...
}
public function questionFormSucceeded($form, $values) {
$this->step = $values->step++; // formular stale uvidi $step == 1
$this->template->step = $values->step++; // sablona uvidi $step == 2
$this->redrawControl();
}
Nedari se mi nove hodnoty dostat do formu.