有不少人反馈说在使用ThinkPHP时,不知道怎么使用$this->ajaxReturn与模板页进行AJAX交互,
下面我以我的个人博客(http://liqingbo.cn/)的管理员登录为例来介绍下$this->ajaxReturn与模板页进行AJAX交互使用方法
首先看PHP控制器的处理,在application/Admin/Controller/LoginController.class.php控制器里加入登录验证方法
//ajax检验管理员登录是否正确 public function check() { $user = M('User'); if(!IS_AJAX){ $this->ajaxReturn(array( 'info' => '非法的请求方式' )); } $user_name = I('user_name', ''); $user_password = I('user_password', ''); $user_password = md5($user_password); $filter = array( 'user_name' => $user_name, 'user_password' => $user_password ); $user_info = $user->where($filter)->find(); if (1 == $user_info['type']) { $this->ajaxReturn(array( 'info' => '你无权登录后台' )); } if($user_info){ // 更新登录ip $info['ip'] = get_client_ip(); //更新登录时间 $info['update_time'] = date('Y-m-d H:i:s', time()); $user->where(array('id' => $user_info['id']))->save($info); session('user_id',$user_info['id']); $data = array( 'info' => 'ok', 'callback' => U('user/index/index') ); }else{ $data = array( 'info' => '登录失败,请检查登录名和密码是否正确' ); } $this->ajaxReturn($data); }
登陆模板页
$('.submit').click(function(event){ //阻止表单默认提交事件 event.preventDefault(); var userName=$("#user_name").val(); var userPassword=$("#user_password").val(); if(userPassword==""||userName==""){ alert('登录名与密码不能为空 '); $("#user_name").focus(); return false; }else{ var url = "{U('Admin/Login/check')}"; $.post(url, { user_name:userName, user_password:userPassword}, function(msg){ if(msg.info == 'ok') { //alert('登录成功,正在转向后台主页!'); window.location.href = msg.callback; } else { alert(msg.info); } }, 'json').error(function(){ alert("网络连接错误,请稍后再试"); }); } })