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中文本操作的类
Mar 17 PHP
php数组函数序列之array_sum() - 计算数组元素值之和
Oct 29 PHP
使用php测试硬盘写入速度示例
Jan 27 PHP
php实现加减法验证码代码
Feb 14 PHP
深入讲解PHP的Yii框架中的属性(Property)
Mar 18 PHP
laravel5.2实现区分前后台用户登录的方法
Jan 11 PHP
Win10 下安装配置IIS + MySQL + nginx + php7.1.7
Aug 04 PHP
PHP 实现公历日期与农历日期的互转换
Sep 13 PHP
php递归函数怎么用才有效
Feb 24 PHP
PHP addAttribute()函数讲解
Feb 03 PHP
因str_replace导致的注入问题总结
Aug 08 PHP
PHP判断一个变量是否为整数、正整数的方法示例
Sep 11 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&amp;&amp;mysql)五
2006/10/09 PHP
国外十大最流行的PHP框架排名
2013/07/04 PHP
php结合ajax实现赞、顶、踩功能实例
2014/05/12 PHP
php文件上传简单实现方法
2015/01/24 PHP
php利用嵌套数组拼接与解析json的方法
2017/02/07 PHP
ThinkPHP5框架缓存查询操作分析
2018/05/30 PHP
Jquery 最近浏览过的商品的功能实现代码
2010/05/14 Javascript
JS清除选择内容的方法
2015/01/29 Javascript
js同源策略详解
2015/05/21 Javascript
详解JavaScript中的every()方法
2015/06/08 Javascript
jQuery实现倒计时重新发送短信验证码功能示例
2017/01/12 Javascript
angular实现form验证实例代码
2017/01/17 Javascript
详解打造 Vue.js 可复用组件
2017/03/24 Javascript
JS实现的模仿QQ头像资料卡显示与隐藏效果
2017/04/07 Javascript
使用JS动态显示文本
2017/09/09 Javascript
从Vuex中取出数组赋值给新的数组,新数组push时报错的解决方法
2018/09/18 Javascript
Vue核心概念Action的总结
2019/01/18 Javascript
node Buffer缓存区常见操作示例
2019/05/04 Javascript
Koa从零搭建到Api实现项目的搭建方法
2019/07/30 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
python编程开发之日期操作实例分析
2015/11/13 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统
2019/09/05 Python
解决pycharm上的jupyter notebook端口被占用问题
2019/12/17 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
Python 统计位数为偶数的数字代码详解
2020/03/15 Python
使用py-spy解决scrapy卡死的问题方法
2020/09/29 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
使用html5制作loading图的示例
2014/04/14 HTML / CSS
html5中使用hotcss.js实现手机端自适配的方法
2020/04/23 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
求职自荐信怎么写
2014/03/06 职场文书
经典洗发水广告词
2014/03/13 职场文书
2015年个人自我剖析材料
2014/12/29 职场文书
总结几个非常实用的Python库
2021/06/26 Python
Redis主从复制操作和配置详情
2022/09/23 Redis