PHP Nette AJAX - dynamický formulář s multiselect - neposílá hodnoty (This field is required)
Dobrý den,
mám v mojí PHP Nette aplikaci formulář, který se překresluje pomocí AJAX ve snippetu a obsahuje multiselect. Překreslení ajaxem probíhá v pořádku a formulář obsahuje správná data, avšak při odeslání dostávám stále dokola hlášku This field is required. Data jsou však skutečně odeslána, ale metoda succeeded je nepřijme. Konkrétně pole array z muliselect pro proměnnou $acl_resource je prázdné - Tracy v kontejneru ale POST data vidí....
Toto je výstup:
---------------------------
DUMP $values v aplikaci
---------------------------
---------------------------
TRACY CONTAINER
---------------------------
Dobrý den,
data ($values) z formu z multiSelect (tzn. array - pole) překresleného AJAXem je v Nette třeba brát v surové (raw) podobě přes getHttpData:
ŘEŠENÍ
---------------------------
Show english version
mám v mojí PHP Nette aplikaci formulář, který se překresluje pomocí AJAX ve snippetu a obsahuje multiselect. Překreslení ajaxem probíhá v pořádku a formulář obsahuje správná data, avšak při odeslání dostávám stále dokola hlášku This field is required. Data jsou však skutečně odeslána, ale metoda succeeded je nepřijme. Konkrétně pole array z muliselect pro proměnnou $acl_resource je prázdné - Tracy v kontejneru ale POST data vidí....
Toto je výstup:
---------------------------
DUMP $values v aplikaci
---------------------------
Nette\Utils\ArrayHash
acl_tag => "group1" (6)
acl_resource => array ()
acl_role => "powerusers" (10)
---------------------------
TRACY CONTAINER
---------------------------
httpData private =>
acl_resource =>
0 => "dfgdgfdfdg"
1 => "Fdfsdfsdf5"
2 => "fdgfdgfdg"
3 => "sfdgfdgdfgd"
send => "Změnit"
_token_ => "1dia9tcaqlQh5bfs9zHm9mrM8Cnvi0j+b+Bg4="
acl_tag => "group1"
acl_role => "powerusers"
_do => "permissionsMultiEditForm-submit"
ODPOVĚĎ
Dobrý den,
data ($values) z formu z multiSelect (tzn. array - pole) překresleného AJAXem je v Nette třeba brát v surové (raw) podobě přes getHttpData:
ŘEŠENÍ
---------------------------
public function permissionsMultiEditFormSucceeded($form, $values)
{
$data = $form->getHttpData(form::DATA_LINE, 'acl_resource[]');
dump($data);
}
Show english version