按照视频上写的,我这个为撒子不对啊,求大佬指点指点
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <!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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?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积分~
来为老师/同学的回答评分吧