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实现MySQL更新记录的代码
Jun 07 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
Javascript与PHP验证用户输入URL地址是否正确
Oct 09 PHP
php基于str_pad实现卡号不足位数自动补0的方法
Nov 12 PHP
PHP使用递归方式列出当前目录下所有文件的方法
Jun 02 PHP
PHP实现获取并生成数据库字典的方法
May 04 PHP
php强制下载文件函数
Aug 24 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
Aug 10 PHP
PHP反射原理与用法深入分析
Sep 28 PHP
PHP的Trait机制原理与用法分析
Oct 18 PHP
PHP获取php,mysql,apche的版本信息及更多服务器信息
Mar 09 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与SQL注入攻击[三]
2007/04/17 PHP
php下mysql数据库操作类(改自discuz)
2010/07/03 PHP
PHP防范SQL注入的具体方法详解(测试通过)
2014/05/09 PHP
PHP输出两个数字中间有多少个回文数的方法
2015/03/23 PHP
在一个js文件里远程调用jquery.js会在ie8下的一个奇怪问题
2010/11/28 Javascript
JavaScript 字符串处理函数使用小结
2010/12/02 Javascript
编写高效jQuery代码的4个原则和5个技巧
2014/04/24 Javascript
Javascript基础教程之数据类型 (布尔型 Boolean)
2015/01/18 Javascript
jQuery实现两款有动画功能的导航菜单代码
2015/09/16 Javascript
分享一个插件实现水珠自动下落效果
2016/06/01 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
vue.js项目中实用的小技巧汇总
2017/11/29 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
使用 Vue cli 3.0 构建自定义组件库的方法
2019/04/30 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
[00:35]DOTA2上海特级锦标赛 VP战队宣传片
2016/03/04 DOTA
通过Python 接口使用OpenCV的方法
2018/04/02 Python
详解python之协程gevent模块
2018/06/14 Python
PyTorch读取Cifar数据集并显示图片的实例讲解
2018/07/27 Python
python实现键盘控制鼠标移动
2020/11/27 Python
如何利用python之wxpy模块玩转微信
2020/08/17 Python
Python中过滤字符串列表的方法
2020/12/22 Python
Blancsom美国/加拿大:服装和生活用品供应商
2018/07/27 全球购物
Doyoueven官网:澳大利亚健身服饰和配饰品牌
2019/03/24 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
什么是ESB?请介绍一下ESB?
2015/05/27 面试题
初中班主任寄语
2014/04/04 职场文书
高三上学期学习自我评价
2014/04/23 职场文书
企业年度评优方案
2014/06/02 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
结婚通知短信大全
2015/04/17 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
供应商食品安全承诺书
2015/04/29 职场文书
Python中glob库实现文件名的匹配
2021/06/18 Python
处理canvas绘制图片模糊问题
2022/05/11 Javascript