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


Posted in PHP onJuly 03, 2019

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

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

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

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

<!--register.html-->
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script type="text/javascript">
  var urlpath = "{$smarty.const.__CONTROLLER__}";
  //ajax无刷新方式校验用户名
  function checkname(){
    //(1)获取被校验的用户名信息
    var nm = document.getElementById('User_username').value;
    //(2)ajax抓取到用户名传递给服务器端进行校验
    var xhr = new XMLHttpRequest();
    xhr.onreadystatechange = function(){
      if(xhr.readyState == 4){
        document.getElementById('namecheck').innerHTML = xhr.responseText;
      }
    }
    //tp框架使用模式:分组/控制器/操作方法/方法参数
    //xhr.open('get', "/shop/index.php/User/checkNM/" + nm);//默认分组为Home
    xhr.open('get', urlpath + "/checkNM/" + nm);
  }
</script>
</head>
<body>
  <tr>
    <td>
      <label for="User_username">用户名</label>
    </td>
    <td>
      <input type="text" name="username" value="" id="User_username" onblur="checkname()">
      <span id="namecheck">{$errorInfo.username|default:""}</span>
    </td>
  </tr>
</body>
</html>

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

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

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
如何隐藏你的.php文件
Jan 04 PHP
简单示例AJAX结合PHP代码实现登录效果代码
Jul 25 PHP
session在php5.3中的变化 session_is_registered() is deprecated in
Nov 12 PHP
php中http与https跨域共享session的解决方法
Dec 20 PHP
php获取四位字母和数字的随机数的实现方法
Jan 09 PHP
php中二维数组排序问题方法详解
Aug 28 PHP
如何写php守护进程(Daemon)
Dec 30 PHP
深入浅析php中sprintf与printf函数的用法及区别
Jan 08 PHP
Yii2基于Ajax自动获取表单数据的方法
Aug 10 PHP
PHP实现二维数组根据key进行排序的方法
Dec 30 PHP
PHP文件上传、客户端和服务器端加限制、抓取错误信息、完整步骤解析
Jan 12 PHP
利用PHP实现一个简单的用户登记表示例
Apr 25 PHP
PHP实现关键字搜索后描红功能示例
Jul 03 #PHP
Smarty模板类内部原理实例分析
Jul 03 #PHP
Referer原理与图片防盗链实现方法详解
Jul 03 #PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 #PHP
Centos7 Yum安装PHP7.2流程教程详解
Jul 02 #PHP
thinkphp5修改view到根目录实例方法
Jul 02 #PHP
PHP rmdir()函数的用法总结
Jul 02 #PHP
You might like
php使用Jpgraph绘制饼状图的方法
2015/06/10 PHP
PHP mysql事务问题实例分析
2016/01/18 PHP
Thinkphp3.2.3整合phpqrcode生成带logo的二维码
2016/07/21 PHP
Nigma vs Alliance BO5 第三场2.14
2021/03/10 DOTA
禁止刷新,回退的JS
2006/11/25 Javascript
JavaScript中的new的使用方法与注意事项
2007/05/16 Javascript
javascript设置金额样式转换保留两位小数示例代码
2013/12/04 Javascript
让浏览器DOM元素最后加载的js方法
2014/07/29 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
Jquery中$.post和$.ajax的用法小结
2015/04/28 Javascript
js模仿java的Map集合详解
2016/01/06 Javascript
JS敏感词过滤代码
2016/12/23 Javascript
Bootstrap中glyphicons-halflings-regular.woff字体报404错notfound的解决方法
2017/01/19 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
详解Node.js access_token的获取、存储及更新
2017/06/20 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
微信小程序发布新版本时自动提示用户更新的方法
2019/06/07 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
[00:52]玛尔斯技能全介绍
2019/03/06 DOTA
Python高效编程技巧
2013/01/07 Python
Python中用Ctrl+C终止多线程程序的问题解决
2013/03/30 Python
python类继承用法实例分析
2015/05/27 Python
Python3多线程爬虫实例讲解代码
2018/01/05 Python
Python格式化输出字符串方法小结【%与format】
2018/10/29 Python
Python操作mongodb数据库的方法详解
2018/12/08 Python
Python提取转移文件夹内所有.jpg文件并查看每一帧的方法
2019/06/27 Python
django之对FileField字段的upload_to的设定方法
2019/07/28 Python
pycharm激活方法到2099年(激活流程)
2020/09/22 Python
纽约家具、家居装饰和地毯店:ABC Carpet & Home
2017/06/21 全球购物
上海期货面试题
2014/01/31 面试题
教学改革实施方案
2014/03/31 职场文书
批评与自我批评发言稿
2014/10/15 职场文书
2014年工程师工作总结
2014/11/25 职场文书
个人年底工作总结
2015/03/10 职场文书
2016党校培训心得体会
2016/01/07 职场文书
Python中相见恨晚的技巧
2021/04/13 Python