Vícetlačítkový ajaxový formulář neinvaliduje snippety na funkci onClick[]
- KillPrd
- Začátečník | 110
mám formulář a v něm mám 3 tlačítka
<?php
$form->addSubmit('save', '.')->onClick[] = callback($this, 'registerForm_register_save');
$form->addSubmit('savecopy','..')->onClick[] = callback($this, 'registerForm_register_copy');
$form->addSubmit('savenew','...')->onClick[] = callback($this, 'registerForm_register_new');
?>
zpracování formuláře je takto :
<?php
public function registerForm_register_copy($form)
{
$values = $form->values;
if($this->isAjax()){
$this->flashMessage('Zadání je nesprávné','error');
$this->invalidateControl();
}
?>
při klasickém odeslání formuláře mi invaliduje snipet a vše funguje jakmile změní na onClick abych detekoval tlačítko neinvaliduje. :( a dá se nějak jinak detekovat tlačítko submit? funkce isSubmitedBy() mi tlačítko nedetekovala :(
- KillPrd
- Začátečník | 110
Tak to taky ne. tohle vrací pouze TRUE/FALSE instance name tam není čímž
nedetekuji správný button tedy stále nevím jak donutit po funkci onClick[] =
callback($this, ‚registerForm_register_save‘);
invalidaci snippetu :( nebo detekovat submit button
hledám už druhej den kde by mohla být chybka.
zkoušel jsem funkci isSubmittedBy(). na tuto funkci mi to vrací
bool(false);
<?php
$submitButton = $form['savecopy']->isSubmittedBy();
var_dump($submitButton);
?>
Editoval KillPrd (4. 9. 2011 9:41)
- KillPrd
- Začátečník | 110
Tak vyřešeno taková maličkost.
onClick[] se provede PŘED onSuccess[] a já jsem dal všude onClick a zrušil
jsem onSuccess tím pádem to je špatně a proto se to neinvaliduje. tedy
jestli jsem to správně pochopil tak se defakto provednou dvě funkce onClick a
následně onSuccess a v onClick se pouze provedou věci navíc co
potřebuji…