注册页四栏: 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.显示页面