načtení dat v presenteru a odesílání formuláře?
- vk83
- Člen | 22
Zdravím,
chtěl bych se zeptat jestli tohle je normální chování nebo je
někde chyba?
Napřed ještě uvedu, že v bootstrap.php mám nastaveno Debug::$strictMode = TRUE;
Třída MujPresenter definuje formulář s jedním checkboxem, který je po načtení stránky dostupný (není disabled) a když odešlu formulář tak se mi objeví chyba, že proměnná toho checkboxu neexistuje.
Pomůže celý ten kód z renderDefault přesunout do createComponentFormTest1 nebo zrušit „->setDisabled(true)“ toho checkboxu na řádku, který jsem označil /1/
Napadlo mě jestli není špatně to, že načítám ty hodnoty z DB do
proměnné v rendereru a s nimi ve formuláři pracuji.
Jinak ty hodnoty se mi z DB načtou a ve formuláři zobrazí, ale nejde to
odeslat, když je to udělané takhle.
Proč to tedy nejde?
class MujPresenter extends BasePresenter {
private $tx;
public function renderDefault($id) {
$nacitani = new NacitaniDB();
$tx = $nacitani->nactiData1($id);
$this->tx = $tx;
}
protected function createComponentFormTest1() {
$id = $this->getParam('id');
$tx = $this->tx;
$form = new AppForm;
if ($id != -1) {
$form->addText('tr1', 'TR1', 80, 120)
->setValue($tx['infoText']);
if ($tx['infoDatum'] == NULL) {
$form->addCheckbox('tr2', 'TR2 / DISABLED')
->setValue(false)
->setDisabled(true); /*1*/
} else {
$form->addCheckbox('tr2', 'TR2')
->setValue(false);
}
} else {
$form->addText('trText', 'Nadpis', 80, 120);
$form->addCheckbox('tr2', 'TR2 / DISABLED')
->setValue(false)
->setDisabled(true);
}
$form->addSubmit('sbm', 'Uložit');
$form->onSubmit[] = callback($this, 'formZprac');
return $form;
}
public function formZprac(AppForm $form) {
$values = $form->getValues();
echo $values['tr2'];
}
}
Formulář je jenom takhle:
{control $form begin}
<div>
<div>
<h1>{$control['formTest1']['tr1']->label}</h1>
<div>{$control['formTest1']['tr1']->control}</div>
</div>
<div>
{$control['formTest1']['tr2']->control}
{$control['formTest1']['tr2']->label}
</div>
{$control['formTest1']['sbm']->control}
</div>
{control $form end}