Yii 框架之實現ajax的範例

Yii框架實現ajax方法非常簡單,由於採用urlmanager來美化ajax請求,故請求的URL爲/index.php/user/Ajax,指的是UserController的ajax方法。

Yii::app()->request->baseUrl 作爲前綴可以避免使用絕對路徑方便移植。


/*
*當input失去焦點時調用jquery中的jquery.ajax()
*/
$('#User_name').bind('blur',function(){
 //alert($(this).val());
 var id = "1";
 var val = "this is ajax test!!!";
 $.ajax({
  type:"POST",
  dataType:"json",
  data:{"id":id,"val":val},
  url:"<?php echo Yii::app()->request->baseUrl;?>/index.php/user/Ajax",  
/*特別注意的地方, 需要將yii的urlmanager配置才能成功,不要使用index.php?r=user/Ajax,會報錯
*/
  success:function(json) {
       alert(json.val);
   },
   error:function(jqXHR, textStatus, errorThrown){
   alert(this.url);
   },
  statusCode:{
   404:function(){alert('not found page');}
 }
});

然後在UserController.php里加入一個新的動作來響應ajax中的url參數

public actionAjax(){
  if(Yii::app()->request->isAjaxRequest)
     {
          $id = (int)Yii::app()->request->getParam('id');
          $val = Yii::app()->request->getParam('val');
          echo CJSON::encode(array("val"=>$val));
      }
}

通過Yii::app()->request->getParam($attrLabel) 來獲取$attrLabel來獲取ajax請求的參數值。

通過Yii的核心類CJSON的encode方法來格式化生成json數據。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章