proměnná $_POST[„action“] a jiné chování pod AJAX módem
- pepakriz
- Člen | 246
Narazil jsem na problém s AJAX požadavkem, kdy proměnná $_POST[„action“] přetíží základní action proměnnou, což se v neajaxovém požadavku neděje. Chyba se nachází v \Application\UI\Presenter, řádek 1170. Dočasně jsem ho upravil na:
<?php
if ($this->isAjax()) {
$postParams = $this->request->getPost();
unset($postParams["action"]);
$params = $postParams + $params;
}
?>
Nejsem si jist, jestli nebude problém nastávat i u dalších proménných jako „presenter“,… proto nechám opravu na někom zkušenějším.
- pepakriz
- Člen | 246
voda napsal(a):
A z jakého důvodu máš ‚action‘ v get i post parametrech? Určitě by tam měla být jen jednou.
Mám formulář a v něm input „action“. Uložení tohoto formuláře bez ajaxu proběhne uplně normálně a při uložení přes ajax nastane chyba. Rozhodně si myslím, že $_POST[„action“] nemá ovlivňovat action, vytaženou přes routu, navíc jen při ajaxovém požadavku.
- Filip Procházka
- Moderator | 4668
Já bych to udělal trochu jinak. Takto budou mít vyšší prioritu query parametry.
$params = $this->request->getParams();
if ($this->isAjax()) {
$params += $this->request->getPost();
}
Každopádně toto je zapeklité a nějak mi nedochází, proč by v params
měly být i POST data, když si je můžu získat jako
$this->request->post
.