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数据库连接
Oct 09 PHP
杏林同学录(三)
Oct 09 PHP
PHP写MySQL数据 实现代码
Jun 15 PHP
php实现无限级分类实现代码(递归方法)
Jan 01 PHP
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
Jul 16 PHP
探讨PHP中this,self,parent的区别详解
Jun 08 PHP
php数组转成json格式的方法
Mar 09 PHP
ThinkPHP、ZF2、Yaf、Laravel框架路由大比拼
Mar 25 PHP
php简单计算页面加载时间的方法
Jun 19 PHP
PHP实现RSA签名生成订单功能【支付宝示例】
Jun 06 PHP
PHP删除数组中指定值的元素常用方法实例分析【4种方法】
Aug 21 PHP
PHP+redis实现微博的拉模型案例详解
Jul 10 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
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
PHP 加密 Password Hashing API基础知识点
2020/03/02 PHP
基于jquery的一个图片hover的插件
2010/04/24 Javascript
jQuery取消特定的click事件
2016/02/29 Javascript
js和jQuery设置Opacity半透明 兼容IE6
2016/05/24 Javascript
Angular中$broadcast和$emit的使用方法详解
2017/05/22 Javascript
详解使用nvm管理多版本node的方法
2017/08/30 Javascript
node+koa实现数据mock接口的方法
2017/09/20 Javascript
详解Vue的常用指令v-if, v-for, v-show,v-else, v-bind, v-on
2018/10/12 Javascript
详解Vue中的基本语法和常用指令
2019/07/23 Javascript
JS制作简易计算器的实例代码
2020/07/04 Javascript
一篇文章让你搞懂JavaScript 原型和原型链
2020/11/23 Javascript
[56:18]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
[42:24]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第三场 11.27
2020/12/01 DOTA
python使用arcpy.mapping模块批量出图
2017/03/06 Python
使用python3构建文件传输的方法
2019/02/13 Python
Python应用领域和就业形势分析总结
2019/05/14 Python
pyqt5之将textBrowser的内容写入txt文档的方法
2019/06/21 Python
python中图像通道分离与合并实例
2020/01/17 Python
python 项目目录结构设置
2020/02/14 Python
python的sys.path模块路径添加方式
2020/03/09 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
使用Python爬取小姐姐图片(beautifulsoup法)
2021/02/11 Python
西班牙最大的在线滑板和街头服饰商店:Fillow.net
2019/04/15 全球购物
建筑专业自我鉴定
2013/10/22 职场文书
教师专业理论水平的自我评价分享
2013/11/09 职场文书
《九寨沟》教学反思
2014/04/08 职场文书
英语求职信范文
2014/05/23 职场文书
地球一小时宣传标语
2014/06/24 职场文书
会计专业求职信
2014/08/10 职场文书
邻里守望志愿服务活动方案
2014/08/15 职场文书
房屋买卖协议样本
2014/11/16 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
MySQL8.0.24版本Release Note的一些改进点
2021/04/22 MySQL