ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
# 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请求'; } } ~~~