thinkphp用ajax注册及检测个人见解
注册页四栏: 1.用户名 2.密码 3.二次输入密码 4.昵称 前端代码略,看核心部分. 1.用户名前端ajax $("#uid").blur(function(){ //取数据 var uid = $(this).val(); //取数据库进行匹配 $.ajax({ url:"__CONTROLLER__/jiance", //jiance控制器在TP的路径 data:{uid:uid}, type:"POST", dataType:"JSON", success: function(data){ if(data.trim()=="OK") { $("#tishi").html("该用户名可用");
$("#tishi").css("color","green");
}
else
{
$("#tishi").html("该用户名不可用!");
$("#tishi").css("color","red");
} } }) })
1.使用blur事件注册用户名,当用户输入用户名结束,鼠标点击用户名输入栏以外区域,若输入栏后面提示绿色信息用户名可用,反之不可用.
1.TP内用以验证用户名的后台jiance控制器
<?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller{ //注册,登录继承系统父类 public function jiance(){ $uid = $_POST["uid"]; $n = M("user"); $arr = $n->where($uid)->find($uid); //此处逻辑困扰我良久 之前错误代码 $arr = $n->where($uid=="uid")->count("*"); if($arr["uid"]==$uid) if($arr){ } { $this->show(); $this->show(); $this->ajaxReturn($arr) $this->ajaxReturn("NO"); } } else { $this->ajaxReturn("OK"); $this->show(); } } }
2、3密码问题
前端JS代码
function validate() { var pwd1 = document.getElementById("pwd").value; var pwd2 = document.getElementById("pwd1").value; <!-- 对比两次输入的密码 --> if(pwd1 == pwd2) { document.getElementById("tishi1").innerHTML= "<font color='green'>两次密码相同!</font>"; document.getElementById("submit").disabled = false; } else { document.getElementById("tishi1").innerHTML= "<font color='red'>两次密码不相同!</font>"; document.getElementById("submit").disabled = true; } }
1.拉取两个div的值赋值给两个变量,判断两个变量是否相等.
如果相等,写入提示"密码相同",执行代码.
如不相等,写入提示"两次密码输入不同",提交功能不执行.
后台zhuce控制器
<?php namespace Home\Controller; use Think\Controller; class LoginController extends Controller{ public function zhuce(){ $uid = $_POST["uid"]; $pwd = $_POST["pwd"]; $name = $_POST["name"]; if($uid==uid){ $this->show(); }else{ $n = M("user"); $n->create(); $arr = $n->add(); $this->ajaxReturn($arr,"TEXT"); $this->show(); } } }
1.往后台发送三个参数 如果数据库的uid 与 $uid相同 那么直接显示页面
反之 1.实例化user模型
2.根据表单提交的POST数据创建数据对象
3.调用添加方法
4.返回数据
5.显示页面