Získání hodnoty formulářového prvku z šablony

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
wasek2611
Člen | 17
+
0
-

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
+
0
-

@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)

wasek2611
Člen | 17
+
0
-

moc díky za rychlou odpověď, s tim signálem mě to ani nenapadlo, vyzkoušim to teda taky :)