обновление поля модели cakephp с помощью jquery
Я пытаюсь обновить поле модели cakePHP через запрос jquery.
Несмотря на успешный вызов ajax , модель не обновляется в базе данных .
<?php $Url = Router::url(array('controller'=>'coupons','action'=>'update_statut'),true); ?>
$.post('<?php echo $Url ?>', { id: id},function(data)
{ alert("sucess");
}).error(function() { alert("error"); })
.complete(function() { alert("complete"); });
На стороне контроллера вот действие:
function update_statut(){
Configure::write('debug', 0);
$this->autoRender = false;
if($this->RequestHandler->isAjax()) {
$this->Coupon->id= $this->params['form']['id'];
$this->Coupon->saveField('statut','terminé');
}
Я даже жестко закодировал идентификатор в действии, чтобы убедиться, что он соответствует моей строке таблицы.
Любые предложения
3 ответа:
Возможно, вы захотите проверить, если вы сделали
var $components = array('RequestHandler');
Может быть условием
Я не профи cakephp, но вы можете попробовать заменить
$this->Coupon->id = $this->params['form']['id'];
By
$this->Coupon->id = $this->params['data']['id'];
?
Вы можете найти дополнительную информациюздесь .
Во-первых, попробуйте работать с $.получится примерно так:
<?php $Url = Router::url(array('controller'=>'coupons','action'=>'update_statut'),true); ?> $.get('<?php echo $Url ?>'+'/'+id, {},function(data) { alert("sucess"); });
И в функции update_statut добавьте идентификатор параметра следующим образом:
function update_statut($id=null){ Configure::write('debug', 0); $this->autoRender = false; if($this->RequestHandler->isAjax()) { $this->Coupon->id= $id; $this->Coupon->saveField('statut','terminé'); }