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 相关文章推荐
PHP开发环境配置(MySQL数据库安装图文教程)
Apr 28 PHP
php echo, print, print_r, sprintf, var_dump, var_expor的使用区别
Jun 20 PHP
封装ThinkPHP的一个文件上传方法实例
Oct 31 PHP
php使用iconv中文截断问题的解决方法
Feb 11 PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 PHP
Symfony2学习笔记之模板用法详解
Mar 17 PHP
利用php的ob缓存机制实现页面静态化方法
Jul 09 PHP
PHP编程文件处理类SplFileObject和SplFileInfo用法实例分析
Jul 22 PHP
PHP实现执行外部程序的方法详解
Aug 17 PHP
PHP实现的各类hash算法长度及性能测试实例
Aug 27 PHP
PHP单例模式数据库连接类与页面静态化实现方法
Mar 20 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
Dec 01 PHP
动态表单验证的操作方法和TP框架里面的ajax表单验证
Jul 19 #PHP
关于ThinkPhp 框架表单验证及ajax验证问题
Jul 19 #PHP
php实现的pdo公共类定义与用法示例
Jul 19 #PHP
PHP实现的Redis多库选择功能单例类
Jul 27 #PHP
PHP策略模式定义与用法示例
Jul 27 #PHP
windows下的WAMP环境搭建图文教程(推荐)
Jul 27 #PHP
php表单文件iframe异步上传实例讲解
Jul 26 #PHP
You might like
无线电广播与收音机发展的历史回眸
2021/03/02 无线电
深入理解PHP原理之异常机制
2010/08/21 PHP
php无限极分类实现的两种解决方法
2013/04/28 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
use jscript List Installed Software
2007/06/11 Javascript
jquery获得option的值和对option进行操作
2013/12/13 Javascript
利用Jquery实现可多选的下拉框
2014/02/21 Javascript
JS运动基础框架实例分析
2015/03/03 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
JS 面向对象之继承---多种组合继承详解
2016/07/10 Javascript
Node.js连接mongodb实例代码
2017/06/06 Javascript
BootStrap selectpicker后台动态绑定数据的方法
2017/07/28 Javascript
Vue.js框架路由使用方法实例详解
2017/08/25 Javascript
js注册时输入合法性验证方法
2017/10/21 Javascript
vue使用better-scroll实现下拉刷新、上拉加载
2018/11/23 Javascript
vue集成kindeditor富文本的实现示例代码
2019/06/07 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
[01:11:10]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG加赛
2014/05/26 DOTA
python3+selenium实现qq邮箱登陆并发送邮件功能
2019/01/23 Python
详解Python3中ceil()函数用法
2019/02/19 Python
python 叠加等边三角形的绘制的实现
2019/08/14 Python
Python 通过截图匹配原图中的位置(opencv)实例
2019/08/27 Python
Python的形参和实参使用方式
2019/12/24 Python
pandas-resample按时间聚合实例
2019/12/27 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
2020/10/20 Python
Python排序函数的使用方法详解
2020/12/11 Python
德国最大的网上鞋店之一:Schuhe24.de
2017/06/10 全球购物
幼儿园小班教师寄语
2014/04/03 职场文书
骨干教师考核方案
2014/05/09 职场文书
机械电子工程专业自荐书
2014/06/10 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
python编程实现清理微信重复缓存文件
2021/11/01 Python
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python