Formulare
- jurahu
- Člen | 1
Ahoj nedari se me zprovoznit nasledujici kod z best practices.
Evidentne prehlizim nejakou blbost, jen nevim kde.
Zkousel jsem misto AppForm davat jen Form, ale to naprosto ignoruje ty callbacky
a nevyplni to action ve formulari.
(Pokud mu to nevyplnim pres setAction() – to je celkem logicke).
Zkousel jsem davat AppForm do defaultPresenteru, ale to me hodilo
exceptionu
s tim, ze mam spatne Signal…
AppForm bez argumentu nedela nic. Hadam to same jako s Form viz vys.
Zkousel jsem i posledni verzi 99 predtim 78 a to same.
Neco delam spatne, akorat nemuzu na foru najit co…
Normalni submit a isSubmited na tom samem formulari chodi bezproblemu.
Diky za shovivavost, nejak me dosli napady.
Sem nekam jsem se dostal nejdal.
Warning: call_user_func_array() [function.call-user-func-array]:
First argument is expected to be a valid callback, 'CancelClicked'
was given in D:\htdocs\formtest\libs\Nette\Object.php on line 127
V sablone mam.
{$form->render()}
V presenteru
<?php
class FormPresenter extends BasePresenter
{
public function startup()
{
$form = new AppForm($this,"form");
$form->addText('name', 'Your name:');
$form->addSubmit('ok', 'Send')
->onClick[] = 'OkClicked'; // nebo 'OkClickHandler'
$form->addSubmit('cancel', 'Cancel')
->setValidationScope(FALSE)
->onClick[] = 'CancelClicked'; // nebo 'CancelClickHandler'
// alternativa:
$form->onSubmit[] = 'FormSubmitted'; // nebo 'FormSubmitHandler'
$this->template->form = $form;
$this->template->title = 'FORMTEST';
}
// obslužné handlery:
function OkClicked(SubmitButton $button)
{
echo "ok";
}
function CancelClicked(SubmitButton $button)
{
echo "cancel";
}
function FormSubmitted(Form $form)
{
echo "submited";
}
}
?>
- David Grudl
- Nette Core | 8218
Tam musí PHP callback,
to znamená ...->onClick[] = array($this, 'CancelClicked');
Doplním to do Best practice.