在开发海外置业网的过程中,发现在前台有很多用ajax的地方,可以总结一下,在以后的开放过程中,使用到随心应手。
- 首先讲第一种,就是返回来的数据是字符串变量(不是json对象)
$.post( "<{$web_url}>/index.php/login/Login", { 'username': username, 'password': password, 'checkRember':checkRember }, function (data) { if(data=="0"){ alert("用户名或者密码错误"); }else if(data=="1"){ window.location.href = "<{$web_url}>/index.php/index"; }else if(data=="2"){ alert("请通过邮箱激活你的账号"); } } );
先说一下$.post(url,data,function(data){ });这个是$.post()函数的应用格式。后台php代码$username = $this->getRequest()->get("username"); $pwd = $this->getRequest()->get("password"); $checkRember = $this->getRequest()->get("checkRember"); $member = new Member(); $realPassword = $member->login($username,md5($pwd)); //用户名 密码 保存七天 if($checkRember == 1){ setcookie("username",$username,time()+7*24*3600); setcookie("pwd",$pwd,time()+7*24*3600); } if( $realPassword == false){ echo 0; }else{ if(!empty($realPassword["activecode"])){ session_start(); $_SESSION["username"]=$username; echo 1; }else{ echo 2; } }
然后这个就是ajax的一个过程,然后在这个期间 http协议所做的事情是什么呢?
这个图 说明了 在ajax过程中 对应的参数 会当做http请求的一部分发送过去 这个也就是解释了 后台php为啥可以接受到参数然后后台php开始处理对应的逻辑关系然后我们会看到http协议echo 1;//把处理之后的结果给输出来
这个回应 的内容 赋值给data然后前台根据data的值 来做出相对应的判断
注意 这个时候 自己打印参数 echo $sql 或者是其他变量 也会一起赋值给data 出现很多未知情况 data的判断 就是失去效果。
2 . 就是讲第二种,就是返回来的数据是json对象 目前, JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。需要先说明的就是 json_encode($data)这个也就是把$data 按照json对象输出http协议得到的数据就是$data['status'] = '0'; $data['msg'] = '你的密码错误'; $data['data'] = '';
这个是就是data接受的数据
然后在前台
var data = eval('(' + data + ')'); console.log(data.status); if(data.status == 0){ alert(data.msg); }else if(data.status == 1){ window.location.href = "<{$web_url}>/index.php/index"; }
这就是一个完整的过程
php中ajax的使用
最新推荐文章于 2024-05-12 00:45:00 发布