2014-02-25 39 views
0

我有一個表單我想通過ajax發佈。我不確定在何處形成發帖去? ajax鏈接調用控制器,小部件呈現視圖...但我不太確定了。現在它不是發佈;它不去「成功」。它會發布的唯一方式是當我在窗口小部件中做$model->save(),這是不正確的..或者我粘貼從控制器到部件的所有內容?那麼ajax鏈接將如何從視圖中調用?在小部件或控制器中發佈ajax表單yii

我想檢查帖子是否已發佈。我知道我也可以通過自定義模型驗證來完成,無論哪種方式,它都無法正確發佈。

這裏的控制器:

$model=new Review; 
$this->performAjaxValidation($model); 

$user_id = Yii::app()->user->user_id; 
$prod_id= Yii::app()->getRequest()->getQuery('id'); 
$model->user_id = $user_id; 
$model->prod_id= $prod_id; 

$criteria = new CDbCriteria; 
$criteria->compare('prod_id',$prod_id,true); 
$criteria->compare('user_id',$user_id,true); 
$record = $model->findAll($criteria); 

$model->attributes=$_POST['Review']; 

if(empty($record)) 
    { 
    //stuff.. 
    $model->save(); 
    echo CJSON::encode(
     array('status'=>'success', 
      'star'=>$model->star, 
      //stuff.. 
    )); 
    return $model->review; 
    } 
elseif(!empty($record)) 
{echo CJSON::encode(
     array('status'=>'dup' 
    )); 
} 
else echo CJSON::encode(
    array('status'=>'error' 
    )); 
Yii::app()->end(); 

這裏是我的ajaxbutton

<?php echo CHtml::ajaxSubmitButton (' Submit Review', 
CHtml::normalizeUrl(array('review/ajaxComment','render'=>true)), 
    array (
     'type' => 'POST', 
     'dataType' => 'json', 
     'success' => 'function(data){ 
      if(data.status == "success"){ 
      if(data.star != undefined){ 
      document.getElementById("review-form").reset(); 
      $("input[type=radio]","#review-form").rating("select",0); 
        for (i=0;i<data.star; i++){ 
        $("#star").append("<i class=\"fa fa-star\"></i>"); 
        } 
        $(".bubble").css("display","block"); 
       } 
      }else if(data.status == "dup"){alert("duplicate");} 
      }else 
      }{alert("Error Posting")}; 
        }', 
     'error'=> 'function(xhr, status, error) {alert(xhr.responseText);}', 

     ) 
    ) 
?> 

沒有太多在我的窗口小部件,只是呈現形式。

+0

當你說「我不確定在哪裏會形成張貼去?」時,你是什麼意思? – Jonnny

+0

它是在小部件還是控制器? – JamAndJammies

回答

0

視圖應該包含窗口小部件和窗體(雖然窗體可以通過窗口小部件或類似物包含)。當suer單擊ajax按鈕時,按鈕應該在控制器中調用適當的方法,然後控制器將發回對視圖的響應。

0

您的代碼非常混亂,您使用$模型搜索並保存新記錄,您確定不會導致問題嗎?

你可能不應該在小部件中執行保存。