práce s nette session a formuláři
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- colek
- Člen | 59
ahoj, může mi někdo prosím poradit, proč se mi nepřenáší data v session?
v actionDefault mám v $this->template->text stále text „poprve“, nikdy se tam nic nepřenese. Když si data dumpnu před redirectem zpět na default, tak v team_id je číslo… ($namespace->team = $data[‚team_id‘];)
díky za radu
public function actionDefault(){
$namespace = Environment::getSession('namespace');
if (isset($namespace->team)) {
$this->template->text = $namespace->team;
} else {
$this->template->text = "poprve";
}
}
protected function createComponentForm($name)
{
$teams = TeamModel::fetchAll();
$names = array();
foreach ($teams as $val){
$names[] = $val->name;
}
$form = new AppForm;
$form->addSelect('team', 'Tým:', $names);
$form->addSubmit('send', 'Vybrat');
$form->onSubmit[] = array($this, 'formASubmitted');
return $form;
}
public function formASubmitted(AppForm $form)
{
$data = $form->getValues();
$team = TeamModel::getById($data['team_id']);
$namespace = Environment::getSession('namespace');
$namespace->team = $data['team_id'];
$this->redirect("default");
}
- Ped
- Člen | 64
tu promennou sablony nastavujes jenom v „action“ handleru a ten se spusti jenom po submitu, takze pokazde kdyz prijde na stranku mimo submit, tak tu session vubec nectes.. (jestli ty kousky kodu chapu spravne)
edit: pardon, nevim nad cim premyslim, actionDefault se vlastne vola asi pokazde… zkus si tam dat nejake to Nette\Debug::dump na jednotlive promenne, abys videl v cem se to lisi nebo co se tam deje.
Editoval Ped (28. 11. 2010 22:57)