PHP Nette AJAX - dynamický formulář s multiselect - neposílá hodnoty (This field is required)

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

PHP Nette AJAX - dynamický formulář s…

23.12.2019 napsal Mučedník

Vyřešeno PHP Nette AJAX - dynamic form with multiselect - not post data (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
---------------------------

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"



Zobrazit odpovědi

Nejlépe hodnocení uživatelé
Hanz

Počet UP: 5096

React: 215

Rusty

Počet UP: 2354

React: 100

OL3G

Počet UP: 1638

React: 60

Strosmajer

Počet UP: 496

React: 23

SYSTEM

Počet UP: 440

React: 23

Oxytocin

Počet UP: 298

React: 18

Hyacint

Počet UP: 40

React: 12

RE: PHP Nette AJAX - dynamický…

31.12.2019 odpověděl Hyacint

Zkontrolováno

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);


Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace