V mojej aplikácii CakePHP pre moju prihlasovaciu metódu robím niekoľko rôznych vecí, keď používateľ predloží formulár cez AJAX hovory pomocou if ($this->request->is("ajax"))
Chcem však povoliť prihlasovacie metódybyť zobrazené v modalite pre rýchle prihlásenie, ktoré je opäť ajax call. Ale ako zistím rozdiel medzi AJAX GET zobraziť formulár a potom AJAX POST urobiť skutočné prihlásenie?
Pozri nižšie Môžem zistiť natívne získať a príspevky, ale ajax ako zistím rozdiel v CakePHP ??? Ako sa zdá, môžem zistiť iba udalosť ajax a nie typ: /
NATIVE:
GET = if ($this->request->is("get"))
POST = if ($this->request->is("post"))
AJAX:
GET = if ($this->request->is("ajax"))
POST = if ($this->request->is("ajax"))
Vďaka
odpovede:
2 pre odpoveď č. 1Riešenie:
if ($this->request->is("get"))
{
if ($this->request->is("ajax"))
{
echo json_encode("ajax get"); exit;
}
else {
echo "Normal get"; exit;
}
}
if ($this->request->is("post"))
{
if ($this->request->is("ajax"))
{
echo json_encode("ajax post"); exit;
}
else {
echo "Normal post"; exit;
}
}
0 pre odpoveď č. 2
Nie som si istý, či chápem otázku, ale akProblém je v tom, že údaje o formulári môžu prísť buď ako POST alebo GET, riešením je skontrolovať, či existujú údaje POST. Ak je, použite funkciu POST, v opačnom prípade zoberte dáta z GET. (Alebo inak.)
Ak by mala funkcia robiť rôzne veci v závislosti od toho, či bol formulár odoslaný ako POST alebo GET, potom jednoducho vytvorte dve rôzne funkcie v riadiacej jednotke.