обновление поля модели 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 2

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é');
}