2011-12-26 45 views
1

我在我的Yii项目中使用CStarRating。目前我必须做的是设置评分,然后点击提交。这工作得很好,但我希望在数据库中获得更新单Go。我尝试了各种基于Ajax的技巧,但我是新的,所以我失败了。CStarRating点击保存

这里是我现有的代码

$this->widget('CStarRating',array(
      'model'=>$model, 
      'attribute'=>'hotel_rating', 
      'readOnly'=>FALSE, 
     )); 

以下阿贾克斯一个

$this->widget('CStarRating',array(
     'name'=>'rating', 
      'model'=>$model, 
      'attribute'=>'hotel_rating', 
     'callback'=>' 
      function(){ 
      $.ajax({ 
       type: "GET", 
       url: "'.Yii::app()->createUrl('hotel/update').'", 
       data: "id='.$model->id.'&rate=" + $(this).val(), 

       success: function(msg){ 
        alert("Sucess") 
        }, 
       error: function(xhr){ 
       alert("failure"+xhr.readyState+this.url) 

       } 
        })}' 
    )); 

在控制器我做的,但还是倒霉

$model->hotel_rating = $_GET['rate'] 

$model->save() 
+0

你确定ajax调用中的$(this).val()会返回rate值吗? – zuo 2011-12-26 18:06:04

+0

我不知道,但在很多地方都是这样做的 – 2011-12-26 18:13:40

回答

1

在控制器我已经试过了,我猜应该为$model->hotel_rating = $_GET['rate'],同样$ _GET ['id']将返回模型的id。

+0

对不起,我的错误率是 – 2011-12-26 18:41:04

+0

如果你想更新模型,在更新动作中,你需要首先用$ _GET ['id']找到模型。我用你的代码测试了这个小部件,它工作正常。你的错误究竟是什么? – zuo 2011-12-26 18:53:45

+0

没有错误只是值不更新:(请你可以粘贴你的代码,以便我可以比较步骤。我是Yii的新手。我看到成功出现,但数据没有得到更新 – 2011-12-26 19:00:37