volání callbacku s parametrem
- Petr9
- Člen | 32
Cau chci se zeptat
kdyz volam callback a potrebuju aby se predal i matametr $i
->onClick[] = callback($this, 'aktualizovat', $i);
Jak to mam upravit aby callback zavolal metodu:
public function aktualizovat($form, $cislo)
{
dump($cislo);
}
Kde $cislo bude ten predanej parametr $i
?
Dík
Editoval Petr9 (14. 8. 2012 14:03)
- Petr9
- Člen | 32
Tak sem to upravil takto:
$form->addSubmit('aktualizovat'.$i, 'Aktualizovat')->onClick[] = callback($this, 'aktualizovatXMLSubmited');
a pak mam funkci
public function aktualizovatXMLSubmited(SubmitButton $button)
{
dump($button->name);
A píše to chybu:
Argument 1 passed to AktualizaceZboziPresenter::aktualizovatXMLSubmited() must
be an instance of SubmitButton, instance of Nette\Forms\Controls\SubmitButton
given
Co mám špatně?
- duke
- Člen | 650
Navíc jsi spojil obě dvě možná řešení
dohromady… :-)
Ten parametr button potřebuješ pouze v případě, že používáš
společný handler typu processForm
(abys poznal, na který submit
button bylo kliknuto). Pokud použiješ oddělené handlery (tvé
např.
aktualizovatXMLSubmited
callback($this, 'aktualizovat' . $i . 'Submitted')
), pak už ten
button nepotřebuješ, protože víš, o který se jedná, už předem.
Mimochodem míchat češtinu a angličtinu v názvech proměnných se nedoporučuje a submitted se píše s dvěma t.
Editoval duke (14. 8. 2012 16:16)