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
---------------------------
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);
}
Komentáře (0)
Přidat komentář