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数据。
转载于:https://blog.51cto.com/webcrawler/1212285