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 HomeController; use ThinkController; 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 HomeController;
use ThinkController;
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.显示页面

                      
原文地址:https://www.cnblogs.com/zhangbaobao/p/7199557.html