ThinkPHP框架结合Ajax实现用户名校验功能示例
程序员文章站
2023-11-22 14:47:52
本文实例讲述了thinkphp框架结合ajax实现用户名校验功能。分享给大家供大家参考,具体如下:
在模板文件中通过ajax获取到用户名,然后在控制器中将用户名与数据库比...
本文实例讲述了thinkphp框架结合ajax实现用户名校验功能。分享给大家供大家参考,具体如下:
在模板文件中通过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; } }
上一篇: oracle如何恢复被覆盖的存储过程