当前位置:首页 > CMS教程 > Thinkphp > 列表

ThinkPHP框架结合Ajax实现用户名校验功能示例

发布:smiling 来源: PHP粉丝网  添加日期:2021-12-01 11:27:10 浏览: 评论:0 

这篇文章主要介绍了ThinkPHP框架结合Ajax实现用户名校验功能,涉及thinkPHP使用ajax与后台控制交互、数据库查询、判定等相关操作技巧,需要的朋友可以参考下。

本文实例讲述了ThinkPHP框架结合Ajax实现用户名校验功能,分享给大家供大家参考,具体如下:

在模板文件中通过ajax获取到用户名,然后在控制器中将用户名与数据库比较,返回校验结果给模板文件。

ThinkPHP用户名校验 Ajax校验

模板文件路径shop/Home/View/User/register.html

  1. <!--register.html--> 
  2. <!DOCTYPE html> 
  3. <html> 
  4. <head> 
  5. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
  6. <title>Untitled Document</title> 
  7. <script type="text/javascript"> 
  8.   var urlpath = "{$smarty.const.__CONTROLLER__}"
  9.   //ajax无刷新方式校验用户名 
  10.   function checkname(){ 
  11.     //(1)获取被校验的用户名信息 
  12.     var nm = document.getElementById('User_username').value; 
  13.     //(2)ajax抓取到用户名传递给服务器端进行校验 
  14.     var xhr = new XMLHttpRequest(); 
  15.     xhr.onreadystatechange = function(){ 
  16.       if(xhr.readyState == 4){ 
  17.         document.getElementById('namecheck').innerHTML = xhr.responseText; 
  18.       } 
  19.     } 
  20.     //tp框架使用模式:分组/控制器/操作方法/方法参数 
  21.     //xhr.open('get', "/shop/index.php/User/checkNM/" + nm);//默认分组为Home 
  22.     xhr.open('get', urlpath + "/checkNM/" + nm); 
  23.   } 
  24. </script> 
  25. </head> 
  26. <body> 
  27.   <tr> 
  28.     <td> 
  29.       <label for="User_username">用户名</label> 
  30.     </td> 
  31.     <td> 
  32.       <input type="text" name="username" value="" id="User_username" onblur="checkname()"> 
  33.       <span id="namecheck">{$errorInfo.username|default:""}</span> 
  34.     </td> 
  35.   </tr> 
  36. </body> 
  37. </html> 

控制器文件路径shop/Home/Controller/User/UserController.class.php

  1. <?php 
  2. //UserController.class.php 
  3. //命名空间 
  4. namespace Home\Controller; 
  5. use Think\Controller; 
  6. //前台用户控制器 
  7. class UserController extends Controller{ 
  8.   //用户名校验 
  9.   function checkNM($name){ 
  10.     //在数据库中根据条件查询结果 
  11.     $info = D('User')->where("username='$name'")->find(); 
  12.     if($info){ 
  13.       echo "<span style='color:red'>用户名已存在,请换一个</span>"
  14.     }else { 
  15.       echo "<span style='color:green'>恭喜,用户名可以使用</span>"
  16.     } 
  17.     exit
  18.   } 
  19. }

Tags: ThinkPHP用户名校验 Ajax校验

分享到: