2011-10-06 75 views
2

我试图通过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行动,以确保它与我的表行配合。

任何建议

回答

1

你可能会想,如果检查出你的U”已经做

var $components = array('RequestHandler'); 

可能是条件

+0

yess apearently处理程序的条件被搞砸了......我完全忘记了导入组件,谢谢你..傻我 – Genjuro

0

我不CakePHP中的亲,但你可以尝试

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

通过

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

更换?

你可以找到更多信息here

+0

没有工作,我不认为这部分有什么问题,因为试图硬编码$ this-> Coupon-> id = 1; (至少对应于我的表中的行ID),仍然没有工作 – Genjuro

0

firstble尝试使用$。获得这样的工作:

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