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中的超全局变量
Oct 09 PHP
虚拟主机中对PHP的特殊设置
Oct 09 PHP
php下使用strpos需要注意 === 运算符
Jul 17 PHP
linux下删除7天前日志的代码(php+shell)
Jan 02 PHP
PHP ? EasyUI DataGrid 资料取的方式介绍
Nov 07 PHP
解析func_num_args与func_get_args函数的使用
Jun 24 PHP
PHP取整函数:ceil,floor,round,intval的区别详细解析
Aug 31 PHP
codeigniter中实现一次性加载多个view的方法
Mar 20 PHP
PHP版QQ互联OAuth示例代码分享
Jul 05 PHP
redis查看连接数及php模拟并发创建redis连接的方法
Dec 15 PHP
TP3.2批量上传文件或图片 同名冲突问题的解决方法
Aug 01 PHP
PHP实现生成推广海报的方法详解
Mar 14 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
一个PHP模板,主要想体现一下思路
2006/12/25 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
PHP入门教程之面向对象的特性分析(继承,多态,接口,抽象类,抽象方法等)
2016/09/11 PHP
事件模型在各浏览器中存在差异
2010/10/20 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
jQuery制作简洁的图片轮播效果
2015/04/03 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
简单谈谈json跨域
2016/03/13 Javascript
jQuery遍历json的方法分析
2016/04/16 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
详解vue 模版组件的三种用法
2017/07/21 Javascript
jQuery实现checkbox的简单操作
2017/11/18 jQuery
vue计算属性时v-for处理数组时遇到的一个bug问题
2018/01/21 Javascript
Vue中render函数的使用方法
2018/01/31 Javascript
webpack开发环境和生产环境的深入理解
2018/11/08 Javascript
vue中使用props传值的方法
2019/05/08 Javascript
为什么JavaScript中0.1 + 0.2 != 0.3
2020/12/03 Javascript
Python中装饰器高级用法详解
2017/12/25 Python
TensorFlow模型保存和提取的方法
2018/03/08 Python
Pandas之DataFrame对象的列和索引之间的转化
2019/06/25 Python
Python多叉树的构造及取出节点数据(treelib)的方法
2019/08/09 Python
python切片(获取一个子列表(数组))详解
2019/08/09 Python
HTML5页面无缝闪开的问题及解决方案
2020/06/11 HTML / CSS
HelloFresh奥地利:立即订购烹饪盒
2019/02/22 全球购物
2014年自我评价
2014/01/04 职场文书
工厂会计员职责
2014/02/06 职场文书
《胡杨》教学反思
2014/02/16 职场文书
副主任竞聘演讲稿
2014/08/18 职场文书
工人先进事迹材料
2014/12/26 职场文书
惊天动地观后感
2015/06/10 职场文书
2019森林防火宣传标语大全!
2019/07/03 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
使用JS实现简易计算器
2021/06/14 Javascript
浅析Redis Sentinel 与 Redis Cluster
2021/06/24 Redis
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS