Přepsání hodnot formuláře po odeslání

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
KillPrd
Začátečník | 110
+
0
-

Ahoj,
mám formulář do kterého načítám informace pomoc předané hodnoty ID v url adrese
ve formuláři mám dotaz přes dibi a načtu do jednotlivých textových polí nebo do selectboxu
a problém nastane jakmile odešlu formulář. On si znovu šáhne na formulář a znovu se snaří načíst informace z databáze a znovu prepsat informace. :(

<?php
public function createComponentEditForm(){
$form = new NAppForm;
$sql = dibi::fetch("SELECT [*] FROM [polozky] WHERE id = %i",$this->param['id']);

$form->addMultiSelect('varianta','Varianty:',$varianty),2)->setValue(@$sql->varianty)->getControlPrototype()->addClass('varianty');
return $form;
}
?>

Myslím že jsem špatně pochopil logiku vytváření formulářů. potřeboval bych popíchnout jak tenhle problém řeši… Děkuji

22
Člen | 1478
+
0
-

A co je na tom za problém?

KillPrd
Začátečník | 110
+
0
-

Problém je že když v selectboxu zaškrtnu možnost a dám odeslat hodnota je po odeslání prázdná

KillPrd
Začátečník | 110
+
0
-

Děkuji za popíchnutí, pochopil jsem plnění že má být mimo formulář myslel jsem si to. Ale problém to nevyřešilo z nějakého důvodu se ten selectbox odešle s prázdnými infromacemi.

takto odešle správně

<?php
$form->addSelect('varianta', 'Varianty:',array('0'=>'neco'));
?>

pak je va values videt že tam je neco ( v tomto případě nula) ;
pokud ale načtudata z renderudo selectboxu a pak odešlu je výsledek prázdný.

<?php
$this['editForm']->getComponent('varianta')->setItems($varianty);


?>
22
Člen | 1478
+
0
-

Data formuláře se plní v action metodě, v render je už pozdě.

KillPrd
Začátečník | 110
+
0
-

Ted jsem to našel na foru děkuji, problém je že i tak to neodešle data.Ba naopak hlasí že mu chybí proměnná id v action.
tedy místo render mám nyní action a plním selectbox v action pomocí předaného ID v url po odeslání
zahlásí že mu chybí proměná id. a tedy neodešle se formulář vubec. pokud dám zavináč abych to obešel selectbox je prázdný…

22
Člen | 1478
+
0
-

a kde si myslíš, že si ta action metoda to ID má zjistit? Musíš ji tam nějak předat.

public function actionForm($id)
{
	$form = $this->getComponent('form');
	$form->setDefaults($this->context->model->getById($id));
}
KillPrd
Začátečník | 110
+
0
-

jo tohle mě moc pomohlo děkuji za pomoc!