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 相关文章推荐
解决GD中文乱码问题
Feb 14 PHP
PHP 用数组降低程序的时间复杂度
Dec 04 PHP
PHP中模拟处理HTTP PUT请求的例子
Jul 22 PHP
php缓冲输出实例分析
Jan 05 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
php类的定义与继承用法实例
Jul 07 PHP
PHPStrom中实用的功能和快捷键大全
Sep 23 PHP
php邮箱地址正则表达式验证
Nov 13 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP后台实现微信小程序登录
Aug 03 PHP
PHP实现数组向任意位置插入,删除,替换数据操作示例
Apr 05 PHP
Thinkphp5.0 框架视图view的比较标签用法分析
Oct 12 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 IPV6正则表达式验证代码
2010/02/16 PHP
PHP魔术方法以及关于独立实例与相连实例的全面讲解
2016/10/18 PHP
Yii 2.0在Grid中格式化时间方法示例
2017/06/06 PHP
PHP实现的简单操作SQLite数据库类与用法示例
2017/06/19 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
document.documentElement和document.body区别介绍
2013/09/16 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
关于javascript模块加载技术的一些思考
2014/11/28 Javascript
ECMAScript5中的对象存取器属性:getter和setter介绍
2014/12/08 Javascript
jQuery随手笔记之常用的jQuery操作DOM事件
2015/11/29 Javascript
JavaScript中通过提示框跳转页面的方法
2016/02/14 Javascript
jQuery实现的导航动画效果(附demo源码)
2016/04/01 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
js 递归和定时器的实例解析
2017/02/03 Javascript
JavaScript实现实时更新系统时间的实例代码
2017/04/04 Javascript
Vue.js实现列表清单的操作方法
2017/11/15 Javascript
详解js跨域请求的两种方式,支持post请求
2018/05/05 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
发布一款npm包帮助理解npm的使用
2019/01/03 Javascript
[03:40]DOTA2亚洲邀请赛小组赛第二日 赛事回顾
2015/01/31 DOTA
Python 3实战爬虫之爬取京东图书的图片详解
2017/10/09 Python
Python实现二叉树的常见遍历操作总结【7种方法】
2019/03/06 Python
Python脚本去除文件的只读性操作
2020/03/05 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
Python selenium爬取微信公众号文章代码详解
2020/08/12 Python
瑞典Happy Socks美国官网:购买色彩斑斓的快乐袜子
2016/10/19 全球购物
国际政治个人自荐信范文
2013/11/26 职场文书
船舶专业个人求职信范文
2014/01/02 职场文书
临床医师专业个人自我评价
2014/01/08 职场文书
职工运动会邀请函
2014/01/19 职场文书
自动一体化专业求职信
2014/03/15 职场文书
对祖国的寄语大全
2014/04/11 职场文书
灰雀教学反思
2014/04/28 职场文书
MySQL8.0.18配置多主一从
2021/06/21 MySQL