Předání pole z formuláře do presenteru
- kralik
- Člen | 230
Ahoj lidičky,
prosím mohu nějak předat pole z formuláře, který byl potvrzen do
presenteru?
Nyní mi to fuguje pouze na string, ale nevím jak na pole či více stringů.
zde je submit pro formulář
public function searchFormSubmitted(AppForm $form)
{
if ($form['search']->isSubmittedBy()) {
$values = $form->getValues();
if ($values['nazev'] != NULL) {
// $hledej = $values;
$hledej = $values['nazev'];
//\Model\User::search($values['nazev']);
}
else {
$this->flashMessage('Vykonaná podmínka else.');
}
// predani promene $hledej do Default:search
$this->redirect('search', array($hledej));
}
}
toto mám ve zpracování (v presenteru)
public function renderSearch($hledej)
{
// $this->template->hledej = $nazev;
$this->template->search = \Model\User::search($hledej);
}
mooc díky za pomoc
tOm
- frosty22
- Člen | 373
No v příkladu však pole nepředáváš, v proměnné $hledej máš pouze jednu hodnota, avšak tedy:
<?php
public function searchFormSubmitted(AppForm $form)
{
$hledej = array("neco", "neco dalsiho", "a dalsi");
$this->redirect('search', array($hledej));
}
?>
A v presenteru:
<?php
public function actionSearch(array $hledej)
{
var_dump($hledej); // toto by mělo být vždy pole
}
?>
PS: Pokud se ti to jeví lehce magické, tak je to také tím, že nette reflexí zjišťuje, jaký typ action požaduje, čili pokud tam uvedeš array, tak nette bude generovat odkazy jako pole, například tedy:
{plink search, hledej => "neco"}
→ pokud budeš mít uvedeno array u action search, tak to vygeneruje odkaz:
http://www.neco.xx/neco/search/?hledej[0]=neco
Pokud to dáš pryč, tak však vygeneruje
http://www.neco.xx/neco/search/?hledej=neco
Snad jsem to napsal správně :)
Editoval frosty22 (7. 10. 2011 15:09)