Získání hodnoty formulářového prvku z šablony
- wasek2611
- Člen | 17
Nejprve se omlouvám, za asi špatný název tématu (a ani nevím, zda jsem ho zařadil správně – jestli to patří do šablon nebo do formulářů), nevím jak by měl být můj problém jinak pojmenován. Nemůžu najít způsob, jak v nette udělat něco takového:
{foreach $nepotvrzeno as $zapas}
<tr>
<td>{$zapas->nazevDomaci}</td>
<td>{$zapas->nazevHoste}</td>
<td>{$zapas->golyDomaci} : {$zapas->golyHoste}</td>
<td>
<form>
<input submit class="tlacitko" type="submit"
name="{$zapas->idZapasu}" value="Potvrdit" />///tahle buňka!!
</form>
</td>
</tr>
{/foreach}
jak vidíte, chci poslat formulářem hodnotu, která je získaná šablonou.
V presenteru k ní nemůžu takto jednoduše přijít. Když to napíšu
takto, tak se k té hodnotě nedostanu.
Napadla mě ještě možnost nějakého skrytého pole, do kterého bych pomocí
šablonovacího systému vložil hodnotu.
Doufám, že snad rozumíte mému problému, protože vyjadřovat se moc neumím
- hAssassin
- Člen | 293
@wasek2611 > ahoj, a proc to mas pres formular?
nebylo by lepsi to mit pres odkaz, ktery povede na signal s ID danyho zapasu a
tam ho potvrdis a pak presmerujes zpatky na vypis? Jinak takto se formulare
netvori, pokud to chces pres formular, tak doporucuju pouzit
Multiplier
:
// Presenter
protected function createComponentConfirmMatchForm()
{
// Create multiplier
$_that = $this;
$control = new Nette\Application\UI\Multiplier(function($name) use ($_that) {
// Creates form
$form = new UI\Form;
$form->addHidden('match_id', $name);
$form->addSubmit('confirm', 'Potvrdit');
$form->onSuccess[] = $_that->processConfirmMatchForm;
return $form;
});
return $control;
}
// Zpracovani
public function processConfirmMatchForm(UI\Form $form)
{
$values = (array) $form->values;
dump($values['match_id']); // zde mas ID zapasu, ktery musis potvrdit
$this->redirect('this');
}
// Sablona
{foreach $nepotvrzeno as $zapas}
<tr>
<td>{$zapas->nazevDomaci}</td>
<td>{$zapas->nazevHoste}</td>
<td>{$zapas->golyDomaci} : {$zapas->golyHoste}</td>
<td>
{form confirmMatchForm-$zapas->idZapasu}
{input confirm}
{/form}
</td>
</tr>
{/foreach}
Toto pouzivam napr pro formular pridat produkt do kosiku, kde si muzes vybrat mnozstvi. Ale jelikoz tam nemas zadny dalsi input, do ktery zadavas nejakou hodnotu, ale pouze tlacitko, prijde mi to zbytecne slozity a volil bych cestu pres handle metodu.
Editoval hAssassin (22. 4. 2013 23:57)