按照视频上写的,我这个为撒子不对啊,求大佬指点指点
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style media="screen"> label{display: block;margin-bottom: 10px;} .error{display: none;width: auto;} span{ display: inline-block; width: 100px; } .submit{ text-align: center; cursor: pointer; display: block; width: 50px; padding: 3px 10px; background-color: #ccc; color: #000; } </style> </head> <body> <form> <label> <span>手机号:</span> <input type="text" name="telphone" value=""> <span class="error">请输入正确的手机号</span> </label> <label> <span>验证码:</span> <input type="text" name="code" value=""> <span class="error">请输入正确的验证码</span> </label> <label> <span>密码:</span> <input type="password" name="password" value=""> <span class="error">请重新输入</span> </label> <label> <a class="submit">登录</a> </label> </form> </body> <script type="text/javascript" src="jquery.min.js"></script> <script> $(function() { // 表单提交 $(document).on("click",".submit",function(){ post(); }) }) // 表单提交 function post() { var postData = $("form").serialize(); $.ajax({ type: "POST", url: "1.php", data: {postData:postData}, dataType: 'json', success: function(data){ console.log(data); if (data.code) { $("input[name="+data.sign+"]").siblings(".error").show(); }else{ console.log("验证成功"); } return false; }, error:function (XMLHttpRequest,textStatus,errorThrown) { console.log(XMLHttpRequest.status); console.log(XMLHttpRequest.readyState); console.log(textStatus); } }); return false; } </script> </html>
php:
<?php header("content-type:text/html;charset=utf-8"); parse_str($_POST['postData'],$post); // 判断手机号是否正确 if (!preg_match('/^1\d{10}$/',$post['telphone'])) { echo json_encode(['code'=>1,'sign'=>'telphone']); return false; } // 判断验证码是否正确 if ($post['code'] != '123456') { echo json_encode(['code'=>1,'sign'=>'code']); return false; }
24
收起
正在回答 回答被采纳积分+1
2回答
imooc_澈
2018-02-01 10:44:31
你好,小慕给您测试了一下,程序缺少一个当手机号和验证码都正确时的返回结果,但现有代码的判断逻辑没有问题,代码的逻辑就是先判断手机号,再判断验证码,当手机号不正确时,程序就会返回json数据,后面的代码就不再执行了,当手机号正确,代码继续向下走,再判断验证码是否正确,如果不正确就会提示验证码不正确,如图:
当手机号和验证码都正确的时候,你的逻辑是console.log("验证成功");但是此时因为没有data数据回来,data.code找不到,类似于变量未定义一样,它无法走js里对于data.code的if判断,按f12可以看到js报错,如图:
根据你的逻辑,在php代码后面加上一个数据返回:echo json_encode(['code'=>0,'sign'=>'ok']);就可以了。
如果解决了你的问题,请采纳,祝学习愉快~
PHP常用技术与ThinkPHP5框架开发
- 参与学习 人
- 提交作业 225 份
- 解答问题 3372 个
掌握用PHP开发互联网网站的必备功能,掌握当下主流的Linux系统开发,并熟练使用热门框架ThinkPhp开发电商团购项目,是通向PHP工程师必经之路。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星