按照视频上写的,我这个为撒子不对啊,求大佬指点指点
<!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 星