改了很多次,可是数据库里的表一直没变化。。。意图是想根据用于注册的表单,先判断这个用户名是否注册过,没注册过的话就插入到数据库的表中
你的代码逻辑有问题.
在表单submit事件里设置window.event.returnValue=false阻止了表单提交事件(IE浏览器下)
表单提交事件里直接把填写的用户名写入cookie了,这跟后端就没关系了
以上两步执行过后,就跳转到了 登录后页面.html,服务器端根本没接收到表单提交
所以你的代码主要是前端问题。
1.一般在表单提交事件里做填写验证,比如用户名以及密码有没有填写,格式或长度对不对,有问题则显示提示信息并阻止表单提交。
2.如果表单检查没问题,有两种处理方法,一种是放行表单提交(在事件中return true以及window.event.returnValue=true),另一种是继续阻止表单提交,然后代码获取表单的数据,使用ajax提交页面,同事设置提交按钮状态为禁用,等获取到返回结果后根据返回的信息再作显示或跳转处理。
3.前端代码,如果没有经验,可以直接用jquery或其它封装好的框架做事件处理,这样可以兼容到常用的浏览器。
以下手打一部分前端处理代码的逻辑
<script>function checkForm(form){
if(!form.username.value){
alert('请填写用户名');
return false;
}
//...其它 验证
//验证通过
return true;
//第二种处理方法,需要引入jquery
$.ajax({
url:$(form).attr('action'),
type:$(form).attr('method'),
data:$(form).serialize(),
dataType:'JSON', //异步操作一般用json做数据交互
success:function(json){
alert(json.message);
location.href=json.url;//在服务器端处理时根据处理结果返回要跳转的页面
}
})
}
</script>
<!-- form 的action表示接收表单数据的页面 -->
<!-- onsubmit事件中使用return可以把处理结果直接提交给事件,返回false则阻止事件,其它情况不阻止事件 -->
<form name="userform" action="submit.php" method="post" onsubmit="return checkForm(this)">
<!-- 中间的代码就不打了 -->
</form>
温馨提示:答案为网友推荐,仅供参考
第1个回答 2019-06-05
打印下$num 看下这个变量返回值 当为空时是否为0