Formulář pomocí proměnné- výpis dat
- Maren
- Člen | 23
Zdravím v prezenteru mám něco jako,
public function renderJmena()
{
$selection = $this->db->table('tabulka')->where('jmeno', 'Emil');
//dump($selection);
$this->template->selection = $selection;
}
to funguje.
Pokud ale v komponentách mám
protected function createComponentForm(){
$form = new \Nette\Application\UI\Form;
$form->addText('jmeno', 'Jméno:');
$form->addSubmit('send', 'Search')
->setAttribute('class', 'sender');
$form->onSuccess[]=$this->procesForm;
return $form;
}
public function procesForm($form){
$selection = $this->table('tabulka')->query('SELECT * FROM tabulka WHERE id=?', 1);
}
tak u $selection = $this->table(‚tabulka‘) … je něco špatně. Věřím, že pokud bych to nechal v presenteru, tak bych tento problém neměl.
- MartinitCZ
- Člen | 580
A neměl bys mít u té komponenty
$this->db->table('tabulka')
místo
$this->table('tabulka')
?
PS: Popis chyby typu „něco je špatně“ je nic neříkající!
Editoval MartinitCZ (29. 11. 2014 17:29)
- Maren
- Člen | 23
Dobře tak jinak procesForm jsem poupravil následovně
public function procesForm($form,$values){
dump ($values);
$selection = $this->table('tabulka')->where('jmeno', 'Emil');
$this->template->selection = $selection;
}
a v souboru templates/homepage/spisControl.latte mám
{block content}
{control vypis}
<h3 class="cente">SPIS</h3>
<ul class="resu" n:foreach ="$selection as $row">
<li class="numero">{$row->id}</li>
<li class="next">{$row->mesto}</li>
</ul>
Laděnka vyhodí –Undefined variable: selection–
Poprosil bych o radu, proč je chyba se „selection“. Jestli je potřeba
u komponent s těma proměnnýma pracovat jinak než, kdyby to bylo napsáno
přímo v „presenteru“. Předem díky.
- MartinitCZ
- Člen | 580
Protože spisControl.latte patří k presenteru a né k formuláři. Nahrad $this->template->selection tímto $this->presenter->template->selection