Обновление поля модели CakePHP через JQuery - PullRequest
2 голосов
/ 06 октября 2011

Я пытаюсь обновить поле модели 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 ]

1 голос
/ 06 октября 2011

вы можете проверить, если вы сделали

var $components = array('RequestHandler');

может быть условием

0 голосов
/ 06 октября 2011

Сначала попробуйте поработать с $. Получите так:

<?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é');
}
0 голосов
/ 06 октября 2011

Я не профессионал CakePHP, но вы можете попробовать заменить

$this->Coupon->id = $this->params['form']['id'];

от

$this->Coupon->id = $this->params['data']['id'];

Вы можете найти больше информации здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...