ThinkPHP框架表单验证操作方法


Posted in PHP onJuly 19, 2017

自动验证是ThinkPHP模型层提供的一种数据验证方法,可以在使用create创建数据对象的时候自动进行数据验证。分为静态验证和动态验证。

一、静态验证

(1)在Home/Controller/路径下新建Index控制器。IndexController

ThinkPHP框架表单验证操作方法

 IndexController.class.php页面

注意:静态定义方式因为必须定义模型类,所以只能用D函数实例化模型

  

create方法是对表单提交的POST数据进行自动验证

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yanzheng(){
    $u= D("users");//造一个子类对象
    if(empty($_POST)){
      $this->show();
    }else{
      if($u->create()){//验证
        echo"验证通过";
      }else{
        echo $u->getError();//获取错误信息
      }
    }
  }
}

 (2)在view/Index文件夹下做yanzheng.html页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>
<body>
<h1>验证界面</h1>
<form action="__ACTION__" method="post">
<div>用户名:<input type="text" name="uid" /></div>
<div>密码:<input type="password" name="pwd1"/></div>
<div>确认密码:<input type="password" name="pwd2"/></div>
<div>年龄:<input type="text" name="age"/></div>
<div>邮箱:<input type="text" name="Email"/></div>
<div><input type="submit" value="验证" /></div>
</form>
</body>
</html>

 效果图:

ThinkPHP框架表单验证操作方法

(3)在Model层写静态验证的验证:(路径如图)

ThinkPHP框架表单验证操作方法

UsersModel.class.php

<?php
namespace Home\Model;
use Think\Model;
class UsersModel extends Model{
    //添加验证条件
    protected $_validate = array(  
      array("uid","require","用户名不能为空!"), //默认情况下用正则进行验证
      array("pwd1","require","密码不能为空!"),
      array("pwd2","require","密码不能为空!"),   
      array("pwd2","pwd1","两次输入的密码不一致",0,"confirm"), // 验证确认密码是否和密码一致
      array("age","18,50","年龄不在范围内",0,"between"),
      array("Email","email","邮箱格式不正确"),
    );
}

 依次验证效果图:

当全部为空时,点击验证

ThinkPHP框架表单验证操作方法

会跳转

输入用户名,其他不输入时,会跳转

两次密码输入不一致时,会提示;年龄不在范围内会提示;邮箱格式不正确时会提示;

ThinkPHP框架表单验证操作方法 ThinkPHP框架表单验证操作方法

ThinkPHP框架表单验证操作方法

输入正确格式内容后

 二、动态验证

(1)  IndexController.class.php页面

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
    public function yz(){
    $u= M("users");//造一个父类对象
    if(empty($_POST)){
      $this->show();
    }else{
      $rules = array(
        array("uid","require","用户名不能为空!"),
      );
      if($u->validate($rules)->create()){//验证
        $this->ajaxReturn("ok","eval");
      }else{
        $this->ajaxReturn("no","eval");
      }
    }
  } 
}

 (2) yz.html页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script src="__ROOT__/Public/js/jquery-3.2.0.min.js"></script>
</head>
<body>
<h1>验证界面</h1>
<form action="__ACTION__" method="post">
<div><input type="text" name="uid" id="uid" /><span id="ts"></span></div>
<div><input type="submit" value="验证" /></div>
</form>
</body>
<script type="text/javascript">
$("#uid").blur(function(){
    var uid = $(this).val();
    $.ajax({
        url:"__ACTION__",
        data:{uid:uid},
        type:"POST",
        dataType:"TEXT",
        success: function(data){
            if(data.trim()=="ok")
            {
              $("#ts").html("验证通过");
            }
            else
            {
              $("#ts").html("用户名不能为空");
            }
          }
      });
  })
</script>
</html>

 看一下效果:

ThinkPHP框架表单验证操作方法

 当文本框失去焦点时:

ThinkPHP框架表单验证操作方法

当文本框有内容时,再失去焦点:

ThinkPHP框架表单验证操作方法

以上所述是小编给大家介绍的ThinkPHP框架表单验证操作方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

PHP 相关文章推荐
无限级别菜单的实现
Oct 09 PHP
如何使用PHP往windows中添加用户
Dec 06 PHP
php ZipArchive压缩函数详解实例
Nov 06 PHP
3个PHP多维数组转为一维数组的方法实例
Mar 13 PHP
浅析get与post的一些特殊情况
Jul 28 PHP
PHP CURL 内存泄露问题解决方法
Feb 12 PHP
PHP两种实现无级递归分类的方法
Mar 02 PHP
PHP更安全的密码加密机制Bcrypt详解
Jun 18 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
PHP+redis实现的悲观锁机制示例
Jun 12 PHP
Yii2.0框架behaviors方法使用实例分析
Sep 30 PHP
Laravel 验证码认证学习记录小结
Dec 20 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 #PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 #PHP
php实现的pdo公共类定义与用法示例
Jul 19 #PHP
PHP多进程编程实例详解
Jul 19 #PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
Jul 19 #PHP
php实现生成code128条形码的方法详解
Jul 19 #PHP
php-beanstalkd消息队列类实例分享
Jul 19 #PHP
You might like
合并ThinkPHP配置文件以消除代码冗余的实现方法
2014/07/22 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
关于PHP内置的字符串处理函数详解
2017/02/04 PHP
PHP pthreads v3下worker和pool的使用方法示例
2020/02/21 PHP
thinkphp框架表单数组实现图片批量上传功能示例
2020/04/04 PHP
javascript jscroll模拟html元素滚动条
2012/12/18 Javascript
滚动条响应鼠标滑轮事件实现上下滚动的js代码
2014/06/30 Javascript
js控制再次点击按钮之间的间隔时间可防止重复提交
2014/08/01 Javascript
node.js中的require使用详解
2014/12/15 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
jquery获取所有选中的checkbox实现代码
2016/05/26 Javascript
AngularJS模块详解及示例代码
2016/08/17 Javascript
vue中关闭eslint的方法分析
2018/08/04 Javascript
Nuxt.js nuxt-link与router-link的区别说明
2020/11/06 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
压缩包密码破解示例分享(类似典破解)
2014/01/17 Python
python删除过期文件的方法
2015/05/29 Python
对json字符串与python字符串的不同之处详解
2018/12/19 Python
wxPython实现绘图小例子
2019/11/19 Python
np.dot()函数的用法详解
2020/01/17 Python
python GUI库图形界面开发之PyQt5图片显示控件QPixmap详细使用方法与实例
2020/02/27 Python
Python新手学习装饰器
2020/06/04 Python
详解CSS的border边框属性及其在CSS3中的新特性
2016/05/10 HTML / CSS
HTML5 embed 标签使用方法介绍
2013/08/13 HTML / CSS
html5 利用重力感应实现摇一摇换颜色可用来做抽奖等等
2014/05/07 HTML / CSS
一份全面的PHP面试问题考卷
2012/07/15 面试题
企业内控岗位的职责
2014/02/07 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
家教广告词
2014/03/19 职场文书
勤俭节约演讲稿
2014/05/08 职场文书
党的群众路线教育实践活动查摆问题自查报告
2014/10/10 职场文书
2015年销售工作总结范文
2015/03/30 职场文书
MySQL 不等于的三种使用及区别
2021/06/03 MySQL
Python实现socket库网络通信套接字
2021/06/04 Python
为什么MySQL8新特性会修改自增主键属性
2022/04/18 MySQL
springboot集成redis存对象乱码的问题及解决
2022/06/16 Java/Android