通过jquery更新cakephp模型字段

时间:2011-10-06 00:08:38

标签: jquery cakephp

我正在尝试通过jquery请求更新cakePHP模型的字段。

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

我甚至在动作中硬编码id以确保它适合我的表格行。

任何建议

3 个答案:

答案 0 :(得分:1)

你可能想看看你是否已经完成了

var $components = array('RequestHandler');

可能是条件

答案 1 :(得分:0)

我不是cakephp的专家,但你可以尝试替换

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

通过

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

您可以找到更多信息here

答案 2 :(得分:0)

firstble尝试使用$ .get这样:

<?php $Url = Router::url(array('controller'=>'coupons','action'=>'update_statut'),true); ?>

  $.get('<?php echo $Url ?>'+'/'+id, {},function(data) { 
          alert("sucess");
       });

并在函数update_statut中添加参数id,如下所示:

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