Я пытаюсь использовать CakePhp и JQuery Mobile вместе. Как правило, он отлично работает, но у меня есть огромная проблема с использованием перенаправления с одного контроллера на другой.Cakephp redirect не работает с jQuery mobile
Эпаклеально, так как я добавил RequestHandler.
Я думаю, что проблема в этом случае заключается в том, что JQuery Mobile ожидает целую строку строки, но контроллер просто возвращает представление.
Есть ли способ заставить функцию перенаправления работать с jQuery mobile?
В этом случае я хотел перенаправить от Orderheads к Orderpositions
Контроллер Orderheads
if ($this->request->is ('post')) {
$this->Orderhead->create();
if ($this->Orderhead->saveAll ($this->request->data,array (
'deep' => true
))) {
$orderId = $this->Orderhead->findByOrdernumber($this->request->data['Orderhead']['ordernumber']);
$id =$orderId['Orderhead']['id'];
$this->Session->setFlash (__ ('The orderhead has been saved.'));
return $this->redirect (array (
'controller' => 'orderpositions',
'action' => 'add', $id
));
} else {
$this->Session->setFlash (__ ('The orderhead could not be saved. Please, try again.'));
}
}
Контроллер Orderpositions
public $components = array (
'Paginator',
'Session',
'RequestHandler'
);
public function add($id = null) {
if ($this->request->is ('ajax')) {
if ($this->RequestHandler->isAjax()) {
Configure::write ('debug', 0);
}
if (! empty ($this->data)) {
$this->autoRender = false;
$this->Orderposition->create();
if ($this->Orderposition->save ($this->request->data)) {
echo 'Record has been added';
} else {
echo 'Error while adding record';
}
}
} else {
$this->loadModel ('Orderhead');
if ($this->Orderhead->exists ($id)) {
$orderInformation = $this->Orderhead->findById ($id);
} else {
throw new NotFoundException (__ ('Invalid order id does not exists'));
}
$this->set (compact ('orderInformation'));
}
}
if ($ this-> request-> is ('ajax')) и ($ this-> RequestHandler-> isAjax()) делают то же самое .. избегайте второго, возможно. – MouradK
Thx, но эта проблема не может решить мою проблему :(. Я действительно уверен, что перенаправление не работает, потому что jquery mobile ожидает целую страницу, но получает только информацию VIEW из Controller-> redirect ... Is not есть ли способ сказать cakephp, что он должен отправить всю страницу? Я пробовал много разных вещей, но ничего не работало. Если я работаю со ссылками (rel = external), перенаправления не являются проблемой ... просто $ this-> функция перенаправления изнутри контроллера не работает :( – Sigurius
Итак, я решил проблему сейчас. Невероятно, насколько легко было O_o Просто введите Data-Ajax = 'false' в Form-> create Options. форма-> создать ('COrderheads', массив ( \t \t \t \t \t \t 'данных Аякса' => 'ложь')); ?> – Sigurius