Jak dostat konkrétní hodnotu z šablony, do defaultní hodnoty formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- zoltinho
- Člen | 24
Zaboha nedostanu data v proměnné v šabloně do defaultní hodnoty ve
formuláři, už nad tím sedím půl odpoledne.
Prosím nemohl by mi někdo v tomhle poradit? V Nette to přeci nemůže být
nijak složité…
Kód:
Odkazem se z jednoho presenteru se dostanu do následujícího níže, obdrží 2 parametry:
public function renderDefault($zaznam_id, $verze_id){
// z tabulky vybere jeden řádek se sloupečkama id, nazev, text
$this->template->posledni_verze = VerzeModel::get_vybrana_verze($zaznam_id,$verze_id);
}
V šabloně vypíšu:
{foreach $posledni_verze as $ver}
<p>{ver->nazev}</p>
{*tímto předáme parametry do formuláře do skrytých tlačítek
tímto způsobem to do defaultní hodnoty formuláře asi nejde přenést.*}
{?$control['editVerzeForm']['akt_verze_id']->value = $ver->id}
{control editVerzeForm}
{/foreach}
V presenteru v továrničce na formulář
protected function createComponentEditVerzeForm(){
$form = new AppForm();
$form->addHidden('akt_verze_id'); //správně se naplní hodnotou ze šablony
$form->addTextArea('text', '', 46, 15)
//tady potřebuju aby se mi načetla proměnná {ver->text} ze šablony
->setDefaultValue( ****> > > > CO SEM NAPSAT? < < < <**** )
$form->addSubmit('save', 'Uložit')->setAttribute('class', 'default');
$form->addSubmit('cancel', 'Zrušit')->setValidationScope(NULL);
$form->onSubmit[] = callback($this, 'editVerzeFormSubmitted');
return $form;
}
- Etch
- Člen | 403
Teoreticky třeba takto:
{? $presenter['editVerzeForm']->setDefaults(array('akt_verze_id' => $ver->id))}
ale přijde mi to obecně jako blbost. On ten tvůj příklad je podle mě
trochu zmatený. Říkáš, že VerzeModel::get_vybrana_verze()
ti
vrátí jeden řádek, tak proč to vůbec procházíš přes foreach?
Podle mě by si výchozí hodnoty nastavovat už v presenteru pomocí:
$this['editVerzeForm']->setDefaults(array('akt_verze_id' => $ver->id))
ale záleží to na konkrétní situaci.