Po odeslání formuláře nedojde k jeho zpracování nadefinovanou funkcí
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Lawondyss
- Člen | 106
Vykresluju formulář bez MVP:
<?php
$form = new Form('podpora');
$form->addHidden('id', $id);
$form->addGroup();
$form->addText('datum', 'Datum', 12);
$form->addRadioList('typ', 'Typ', array(
'S' => 'Stravné',
'C' => 'Cestovné',
'L' => 'Lékař',
));
$form->addText('poc_stravenek', 'Počet stravenek', 15, 15);
$form->addSelect('forma_uhr', 'Forma úhrady', array(
'P' => 'převodem',
'H' => 'hotově',
))
->skipFirst('-- vyberte --');
$form->addText('doklad', 'Číslo dokladu', 15, 15);
$form->addText('castka', 'Částka', 15, 15);
$form->addSubmit('save', 'Uložit');
$form->onSubmit[] = 'formPodporaSubmitted';
// nastaveni vychozich hodnot
if(!$form->isSubmitted() && isset($id))
{
$form->setDefaults($defaults);
}
echo $form;
function formPodporaSubmitted(Form $form)
{
NDebug::dump($form->getValues());
}
?>
A když formulář odešlu, tak na funkci
formPodporaSubmitted vůbec nedojde.
Vygenerované HTML.
<form action="" method="post" id="frm-podpora">
<div class="section">
<div class="ln">
<div class="ln_1_1"><label for="frmpodpora-datum">Datum</label></div>
<div class="ln_1_2"><input type="text" size="12" name="datum" id="frmpodpora-datum" value="30.06.2009" /></div>
</div>
<div class="ln">
<div class="ln_1_1"><label>Typ</label></div>
<div class="ln_1_2"><input type="radio" name="typ" id="frmpodpora-typ-0" value="S" /><label for="frmpodpora-typ-0">Stravné</label><br /><input type="radio" name="typ" id="frmpodpora-typ-1" value="C" /><label for="frmpodpora-typ-1">Cestovné</label><br /><input type="radio" name="typ" id="frmpodpora-typ-2" value="L" /><label for="frmpodpora-typ-2">Lékař</label><br /></div>
</div>
<div class="ln">
<div class="ln_1_1"><label for="frmpodpora-poc_stravenek">Počet stravenek</label></div>
<div class="ln_1_2"><input type="text" size="15" maxlength="15" class="text" name="poc_stravenek" id="frmpodpora-poc_stravenek" value="9" /></div>
</div>
<div class="ln">
<div class="ln_1_1"><label onclick="document.getElementById(this.htmlFor).focus();return false" for="frmpodpora-forma_uhr">Forma úhrady</label></div>
<div class="ln_1_2"><select onfocus="this.onmousewheel=function(){return false}" name="forma_uhr" id="frmpodpora-forma_uhr"><option value="" selected="selected">-- vyberte --</option><option value="P">převodem</option><option value="H">hotově</option></select></div>
</div>
<div class="ln">
<div class="ln_1_1"><label for="frmpodpora-doklad">Číslo dokladu</label></div>
<div class="ln_1_2"><input type="text" size="15" maxlength="15" class="text" name="doklad" id="frmpodpora-doklad" value="" /></div>
</div>
<div class="ln">
<div class="ln_1_1"><label for="frmpodpora-castka">Částka</label></div>
<div class="ln_1_2"><input type="text" size="15" maxlength="15" class="text" name="castka" id="frmpodpora-castka" value="540.00" /></div>
</div>
</div>
<div class="ln_but">
<input type="submit" class="button" name="save" id="frmpodpora-save" value="Uložit" />
</div>
<div><input type="hidden" name="_form_" id="frmpodpora-_form_" value="podpora" /><input type="hidden" name="id" id="frmpodpora-id" value="246" /></div>
</form>
Nemám nastavený action, ale to snad není potřeba, když se formulář zpracovává v tom samém skriptu, ve kterém je generován, ne?