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 URL验证正则表达式
Jul 19 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
PHP实现将科学计数法转换为原始数字字符串的方法
Dec 16 PHP
php将日期格式转换成xx天前的格式
Apr 16 PHP
php.ini中的request_order推荐设置
May 10 PHP
PHP aes (ecb)解密后乱码问题
Jun 22 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
PHP接收App端发送文件流的方法
Sep 23 PHP
iOS自定义提示弹出框实现类似UIAlertView的效果
Nov 16 PHP
PHP 7.1新特性的汇总介绍
Dec 16 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
Yii中render和renderPartial的区别
2014/09/03 PHP
JQuery事件e参数的方法preventDefault()取消默认行为
2013/09/26 Javascript
Javascript基础教程之变量
2015/01/18 Javascript
Javascript实现多彩雪花从天降散落效果的方法
2015/02/02 Javascript
JS中BOM相关知识点总结(必看篇)
2016/11/22 Javascript
创建一般js对象的几种方式
2017/01/19 Javascript
react性能优化达到最大化的方法 immutable.js使用的必要性
2017/03/09 Javascript
微信小程序 密码输入(源码下载)
2017/06/27 Javascript
JavaScript实现图片无缝滚动效果
2017/07/07 Javascript
基于vue2.0实现简单轮播图
2017/11/27 Javascript
以v-model与promise两种方式实现vue弹窗组件
2018/05/21 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
在vue项目中正确使用iconfont的方法
2018/09/28 Javascript
零基础之Node.js搭建API服务器的详解
2019/03/08 Javascript
javascript实现的时间格式加8小时功能示例
2019/06/13 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
用Golang运行JavaScript的实现示例
2019/11/25 Javascript
JavaScript实现简单的图片切换功能(实例代码)
2020/04/10 Javascript
Python使用中文正则表达式匹配指定中文字符串的方法示例
2017/01/20 Python
python初学之用户登录的实现过程(实例讲解)
2017/12/23 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
Python使用GitPython操作Git版本库的方法
2020/02/29 Python
基于Python绘制个人足迹地图
2020/06/01 Python
优衣库台湾官网:UNIQLO台湾
2019/02/01 全球购物
手工制作的音乐盒:Music Box Attic
2019/09/05 全球购物
经理秘书岗位职责
2013/11/14 职场文书
新郎婚宴答谢词
2014/01/19 职场文书
火车来了教学反思
2014/02/11 职场文书
化工工艺设计求职信
2014/06/25 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
后勤工作个人总结
2015/02/28 职场文书
自主招生自荐信格式
2015/03/04 职场文书
务工证明怎么写
2015/06/18 职场文书
开学随笔
2015/08/15 职场文书
2019年怎样才能撰写出优秀的自荐信
2019/03/25 职场文书