Query params vs POST values (Form::getValues() vs Form::getHttpData())

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Pavel Janda
Člen | 977
+
0
-

Ahoj,

zajímalo by mě, proč dává Form::getValues() přednost query parametrům, když je formulář POST a má jinou hodnotu v POSTU?

Díky za info.

Editoval Pavel Janda (9. 10. 2016 23:47)

David Grudl
Nette Core | 8228
+
0
-

Pokud je formulář POST, tak se získávají data jen z POSTu, viz https://github.com/…/UI/Form.php#…. Form::getHttpData() by se k jiným datům vůbec nemělo dostat. A Form::getValues() vrací aktuální hodnoty z formuláře, tedy po odeslání jsou to ty z POST + ty co byly uživatelsky nějak změněny.

Tedy je to záhada… Můžeš to zkusit prozkoumat?

Pavel Janda
Člen | 977
+
0
-

@DavidGrudl Hodnoty byly uživatelsky změněny..
Viz https://github.com/…941f9234ff7f.

Promiň za tvůj čas, holt, čas od času se kolečka zadrhnou. :)

CZechBoY
Člen | 3608
+
0
-

@PavelJanda taky používám !isSubmitted() pro vkládání hodnot ze session (třeba při stránkování, taková emulace persistních parametrů) + $form->getValues().

btw. proč si dal pryč to return $form;?

Pavel Janda
Člen | 977
+
0
-

@CZechBoY Protože ten Form je zaregistrován ve stromu komponent již zde: https://github.com/…DataGrid.php#… :)

Editoval Pavel Janda (12. 10. 2016 20:58)

CZechBoY
Člen | 3608
+
0
-

@PavelJanda aha, ok.
btw. nechápu jaktože jsem byl první co nahlašoval ten bug… Co je na mým kodu tak spešl?

Pavel Janda
Člen | 977
+
0
-

@CZechBoY Něco se muselo změnit, dřív se to nedělo. Taky se taková situace víc projeví na příkladu bez ajaxu (tvůj příklad).