Předání hodnoty z URL a její použití v obou částech generování formuláře
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Ladis-s
- Člen | 53
Je to dost začátečnický problém. Mám hodnotu, která je jako parametr
v URL a při prvním generování formuláře si ji uložím do hidden. Při
odeslání formuláře se již tento hidden nevytvoří, protože již nemám tu
proměnnou v URL a tím pádem se mi ani nezobrazí v poli odeslaných
dat.
Nevíte co s tím?
if($this->getParam('poprve') == 'ano'){
$form->addHidden('poprve',$this->getParam('poprve'));
}
- Filip Procházka
- Moderator | 4668
Co takhle ten hidden vytvořit vždycky, ale dát mu hodnotu, jenom když je ten parametr v url?
public function actionDefault($poprve = NULL) // fakt se to tam automaticky dosadí
{
if ($poprve !== NULL) {
$this['jmenoFormulare']['poprve']->setDefaultValue($poprve);
}
}
public function createComponentJmenoFormulare($name)
{
$form = new AppForm($this, $name);
// ...
$form->addHidden('poprve');
//...
}
- Filip Procházka
- Moderator | 4668
První požadavek
- zavolá se akce, té se magicky předají parametry z query, o které si řekne (pomocí parametrů)
- protože se zatím jenom renderuje, tak metoda setDefaultValue nastaví výchozí hodnotu
- formulář vyplníš a odešleš
Druhý požadavek
- v url už není parametr, takže se nepokouší ho nastavit (ani by ho
nenastavil, protože
setDefaultValue
) - formulář příjme v requestu POST data a zpracuje
- zavolá tvoje události