# AJAX返回
当前台发出AJAX请求到一个Controller控制器,这个控制器对AJAX请求发送过来的数据进行判断和业务逻辑处理,最后再使用Controller中的ajax()将处理结果返回给前台的回调函数。
在Controller的方法中,使用$this->ajax()方法返回数据给前台,在ajax()方法中传入一个数组变量即传递数据给前台回调函数。
例如:
~~~
public function index(){
$ajaxdata = 'ok';
$this->ajax($ajaxdata);
}
~~~
<br/><br/>
#### 稍微复杂一点的ajax示例,也是最常用的方式
前台代码例:
~~~
<!DOCTYPE html>
<html>
<head>
<title>AJAX</title>
<!-- 引入jQuery -->
<script type="text/javascript" src="jquery-1.11.2.min.js"></script>
</head>
<body>
<input name="userid" id="userid" type="text" value="10"></input>
<button type="button" id="postbut">提交</button>
<script type="text/javascript">
//当点击提交按钮时触发操作,执行click()中的function(){}匿名函数
$("#postbut").click(function(){
//先获得需要传递的数据
var uid = $("#userid").val();
//使用get方式发起AJAX请求到 Index控制器下的getuser方法。
//关于$get()方法的详细介绍请参考jQuery手册
$.get('/index.php/Index/getuser/',{'userid': uid},function(data){
//data里存放着 Index控制器下的getuser方法 返回的处理结果数据集。
//这里的data.message就是 Index控制器下的getuser方法 中的$ajaxdata['message']的值。
alert(data.message);
},'json');
});
</script>
</body>
</html>
~~~
<br/><br/>
后台代码例:
~~~
class IndexController extends Controller{
public function index(){
$data["hello"] = "<h1 style=\"text-align:center;\">欢迎使用MAGPHP微框架!</h1><br/>";
$this->display($data);
}
public function getuser(){
//获取ajax发送过来的数据
$userid = I('userid',0);
//初始化AJAX返回信息
$ajaxdata['message'] = '无';
//判断获取的数据
if($userid>0)
{
$ajaxdata['message'] = '用户ID的值是:'.$userid;
}
else
{
$ajaxdata['message'] = '没有获得用户ID,输出默认值:'.$userid;
}
$this->ajax($ajaxdata);
}
}
~~~
<br/><br/>
## 判断是否为AJAX请求
框架提供了AJAXTYPE()方法来判断请求是否为AJAX请求。
例:
~~~
public function getuser(){
$ajaxdata = '无';
if(AJAXTYPE())
{
$ajaxdata = '这是AJAX请求';
$this->ajax($ajaxdata); //要在前台回调函数中输出
}
else
{
echo '不是AJAX请求';
}
}
~~~