JqueryAjax登录实现
2016-01-10 08:43
627 查看
一个完整的Ajax提交(POST)
前台(JqueryAjax)
注意,如果将ajax提交封装到一个方法中,同步方式必须选择false!
2. 后台处理(PHP):
服务器返回数据:
ThinkPHP: $this->ajaxReturn($output, 'json');
http://doc.thinkphp.cn/manual/ajax_return.html
原生: echo json_encode($array)
前台(JqueryAjax)
$(function(){ $('.dl_btn').click(function(){ $.ajax({ type: "POST", // 提交方式 POST dataType : "json", // 预期服务器返回的数据类型 json data: $("#login").serialize(), // 将表单中要提交的内容序列号 async : true, // 默认设置下,所有请求均为异步请求 url : "__GROUP__/Public/checkLogin", // 需要提交的URL success : function(msg){ // 请求成功后的回调函数。 // console.debug(msg); if(dmsg.code !=8){ alert(msg.message); }else{ window.location.href='/Index/index/'; } } }, // XHR: 全称: XMLHttpRequest error:functuon(jqXHR){ alert("错误信息为" + "jqXHR.status"); } // 另一种写法 error: function (data, status, e) {//服务器响应失败处理函数 alert(e); } }); }) });
注意,如果将ajax提交封装到一个方法中,同步方式必须选择false!
2. 后台处理(PHP):
/** * 检测登录 */ public function checkLogin() { if($_SESSION['userInfo']){ $this->redirect('/'); } // 初始化output $output['code'] = 0; if(empty($_POST['username'])){ $output['code'] = 5; $output['message'] = '用户名不能为空'; $this->ajaxReturn($output,'json'); } if(empty($_POST['password'])){ $output['code'] = 6; $output['message'] = '密码不能为空'; $this->ajaxReturn($output,'json'); } if(empty($_POST['verify'])){ $output['code'] = 7; $output['message'] = '验证码不能为空'; $this->ajaxReturn($output,'json'); } $data = array( 'user_account' => $_POST['username'], 'user_pwd' => $_POST['password'], 'verify' => $_POST['verify'] ); $user = new UserModel(); $userInfo = $user->getUserByAccount($data['user_account']); if($_SESSION['verify'] != md5($data['verify'])){ $output['code'] = 4; $output['message'] = '验证码不正确,请重新输入'; $this->ajaxReturn($output,'json'); } if($userInfo){ if(!$userInfo['user_status']){ $output['code'] = 2; $output['message'] = '用户已冻结,禁止登录'; $this->ajaxReturn($output,'json'); } if($userInfo['user_pwd'] == md5($data['user_pwd'])){ $_SESSION['userInfo'] = $userInfo; $node = new UserNodeModel(); $_SESSION['node'] = $node->getUserNodeById($userInfo['id']); $output['code'] = 8; $this->ajaxReturn($output,'json'); }else{ $output['code'] = 3; $output['message'] = '密码不正确,请重新输入'; } }else{ $output = array( 'code' => 1, 'message' => '用户不存在' ); }
服务器返回数据:
ThinkPHP: $this->ajaxReturn($output, 'json');
http://doc.thinkphp.cn/manual/ajax_return.html
原生: echo json_encode($array)
相关文章推荐
- JQuery实现照片瀑布流
- 分享有关jQuery中animate、slide、fade等动画的连续触发、滞后反复执行的bug
- jQuery实现的调整表格行tr上下顺序
- jquery在ie7下选择器的问题导致append失效的解决方法
- 关于JQuery Moblie多选表单提交时PHP接收的处理方法
- 转载-----jQuery 2.0.3 源码分析core - 整体架构
- 常见后台jquery ui tabs方法实战
- zTree学习笔记(一)
- jQuery Video Extend
- jQuery Video Extend
- jQuery Video Extend
- jquery学习随笔(动画效果)
- jquery学习随笔(模拟行为、事件委托)
- jQuery之动画特效
- jQuery之操作DOM元素
- jQuery之选择器
- easyui select选择框模糊查询 以及页面引入多个版本的jquery解决办法
- jQuery页面刷新(局部、全部)问题分析
- jquery实现模拟点击跳转 $.trigger
- jquery实现模拟点击跳转 $.trigger