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 相关文章推荐
一个程序下载的管理程序(一)
Oct 09 PHP
用php+mysql一个名片库程序
Oct 09 PHP
php_xmlhttp 乱码问题解决方法
Aug 07 PHP
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
php懒人函数 自动添加数据
Jun 28 PHP
新浪微博API开发简介之用户授权(PHP基础篇)
Sep 25 PHP
探讨:php中在foreach中使用foreach ($arr as &amp;$value) 这种类型的解释
Jun 24 PHP
微信公众平台天气预报功能开发
Jul 06 PHP
PHP类的封装与继承详解
Sep 29 PHP
PHP实现的通过参数生成MYSQL语句类完整实例
Apr 11 PHP
php基于curl重写file_get_contents函数实例
Nov 08 PHP
laravel框架实现为 Blade 模板引擎添加新文件扩展名操作示例
Jan 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设计模式之装饰器模式定义与用法简单示例
2018/08/13 PHP
不一样的文字闪烁 轮番闪烁
2009/11/11 Javascript
理解Javascript_01_理解内存分配原理分析
2010/10/11 Javascript
JQuery slideshow的一个小问题(如何发现及解决过程)
2013/02/06 Javascript
基于JavaScript实现继承机制之调用call()与apply()的方法详解
2013/05/07 Javascript
js 程序执行与顺序实现详解
2013/05/13 Javascript
使用JavaScript实现网页版Pongo设计思路及源代码分享
2014/06/16 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
jQuery实现的鼠标经过时变宽的效果(附demo源码)
2016/04/28 Javascript
微信JS-SDK坐标位置如何转换为百度地图坐标
2016/07/04 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
浅谈JavaScript中的apply/call/bind和this的使用
2017/02/26 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
基于JavaScript实现弹幕特效
2020/08/27 Javascript
vue 怎么创建组件及组件使用方法
2017/07/27 Javascript
写给小白看的JavaScript异步
2017/11/29 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
vue src动态加载请求获取图片的方法
2018/10/17 Javascript
通过图带你深入了解vue的响应式原理
2019/06/21 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
vue点击自增和求和的实例代码
2019/11/06 Javascript
Python入门篇之条件、循环
2014/10/17 Python
python比较两个列表大小的方法
2015/07/11 Python
Python的Flask框架中SQLAlchemy使用时的乱码问题解决
2015/11/07 Python
Python批量发送post请求的实现代码
2018/05/05 Python
win8.1安装Python 2.7版环境图文详解
2019/07/01 Python
win10下python3.8的PIL库安装过程
2020/06/08 Python
python 实现网易邮箱邮件阅读和删除的辅助小脚本
2021/03/01 Python
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
工程总经理工作职责
2013/12/09 职场文书
分公司总经理岗位职责
2014/07/30 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
财务部会计岗位职责
2015/02/03 职场文书
护士爱岗敬业心得体会
2016/01/25 职场文书
win10更新失败无限重启解决方法
2022/04/19 数码科技