我正在尝试通过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以确保它适合我的表格行。
任何建议
答案 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é');
}