用户名能存上,但是密码存不上。。。刚学照猫画虎写的,不知道哪里错了。。
首先:$("#psw").val()是可以取到值的。
js代码:
function regist(){
$.ajax({
url:"/h51702/cui/shuai/regist4ajax",
type:"get",
data:{
username:$("#username").val(),
psw:$("#psw").val(),
},
success:function(res){
alert(res);
if(res=="成功"){
location.href = "/h51702/cui/shuai/login";
}else{
//alert(res.msg);
}
}
})
}else{
alert("信息输入有误,请重新填写")
}
}
php代码:
public function regist4ajax($username="",$psw=""){
$userItem = Db::query('select * from users where username=?',[$username]);
//$userItem = db("users")->where('username',$username)->find();
if(empty($userItem)){
$result = Db::execute('insert into users(username,psw) values (?,?)',[$username,$psw]);
if($result){
return "成功";
}
return"失败";
}else{
return "用户名已经注册";
}
}
数据库中:
id int(11) AI PK
username varchar(45)
psw varchar(45)
creat_date datetime
可能出错的地方很多,你的表单,数据库结构都不知道。
说说基本错误定位方法,整个注册有几个步骤:
页面内获取数据》ajax传输到执行页》执行页请求数据库更改》数据库储存
带着你的数据一步步走来确认,比如 $("#psw").val() 是不是真的获取了密码信息,然后 ajax 接收页是不是真的就收到这个数据,然后执行代码到底执行了一条什么样的 query,这条 query 直接在数据库执行能不能成功。这么一步步走,找到哪步卡住了,就容易找出问题所在了。
可能在以下几个地方出错,具体职能靠自己排查了。
$("#psw").val()
是否真的获取到了密码输入框的值由于你说用户名能存上,所以我觉得你后台应该是获取到了数据,至于为啥密码没存上,你看下你数据库中密码存取字段是不是
psw
,这个要和'insert into users(username, psw) values (?, ?)'
这里面的psw
相应另外,你看下你的数据库
psw
字段是否是字符串类型比如VARCHAR
、CHAR
或者TEXT
类型。为啥要用get方式提交用户名和密码呢?
改用post吧,然后看post是否接收到了数据。