2011-12-26 51 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