用户注册时,Yii利用AJAX页面实时提示用户名已经存在

22 篇文章 0 订阅
4 篇文章 0 订阅

在用户注册网站时候,有的网站会实时告诉你,这个用户名已经注册过了。自己之前用的Yii的save()函数在表单提交的时候才验证,然后表单又要在填写一遍,觉得很繁琐。如果实时提醒,应该可以增加用户的体验度。
查询了使用的方式

在View视图页面使用JS

1、元素id = “Model_name”的文本框设置监听,利用onkeyup函数,就是文本框值一旦发生变化就进行操作
2、获取当前的值,然后使用ajax请求有关控制器下的函数进行处理打开
3、根据函数查询数据表的结果,如果存在则提示用户用户名已经注册了,如果不存在,则显示用户名可以注册,这里是一个绿色的钩下载
4、页面有个地方放置上述信息
完成

document.getElementById("Model_name").onkeyup = function(){
           if($(this).val()){
               $.ajax({  
                   url:"/Model/Controller",   
                   type : "POST",  
                   data : { "name" : $(this).val(),       
                               "check" : "checkName",
                           }, 
                   dataType : "json",                             
                   async : true,  
                   success : function(mydata) {
                       var obj = eval(mydata);
                       if(obj.exist){//名字存在,告知不可以
                           $("#nameExist").html(obj.exist); //显示后端传递的结果
                       }else if(obj.notExist){//名字不存在,显示绿色的钩
                           var success = \'<img  style ="max-width: 5%" src="teamSuccess.jpg"  border="10px"/>\';

                           $("#nameExist").html(success); //显示后端传递的结果
                       }
                   },  
                   error : function() {  
                           alert("calc failed");  
                   }  
               });
           }


//view html
<input style="width:150px;" placeholder="请输入用户名称" name="TrTeam[name]" id="TrTeam_name" maxlength="12" type="text">                                                                        
                                        &emsp;<span id="nameNull" style="display:none;" ><font style="color:red;">请填写团队名称</font></span>
                                        <span id="nameExist" style="color:red;"></span>   

这里主要用的是js的函数onkeyup然后将获取的值用ajax的方式传递,表示这样很友好~~~

Controller中处理AJAX的有关信息

$teamName = $_POST["name"];
            $model = Model::model();
            $info = $model->findAllByAttributes(array('name'=>$name));
            if($_POST["check"] == "checkName"){//创建时的名称检查,检查是否重名
                if(!empty($info)){
                    $responce = array('exist'=>'用户名已存在,请重新输入');                    
                }
                else{
                    $responce = array('notExist'=>'用户名称可注册');
                }       

效果展示
这里写图片描述

这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值