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函数
Oct 09 PHP
Php Ctemplate引擎开发相关内容
Mar 03 PHP
php对图像的各种处理函数代码小结
Jul 08 PHP
php实现分页工具类分享
Jan 09 PHP
php打造智能化的柱状图程序,用于报表等
Jun 19 PHP
PHP封装CURL扩展类实例
Jul 28 PHP
PHP的运行机制与原理(底层)
Nov 16 PHP
PHP数组去重比较快的实现方式
Jan 19 PHP
两种php实现图片上传的方法
Jan 22 PHP
简单谈谈PHP面向对象之标识对象
Jun 27 PHP
Laravel事件监听器用法实例分析
Mar 12 PHP
PHP Trait功能与用法实例分析
Jun 03 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
php对象和数组相互转换的方法
2015/05/12 PHP
Yii2如何批量添加数据
2016/05/17 PHP
PHP环形链表实现方法示例
2017/09/15 PHP
laravel unique验证、确认密码confirmed验证以及密码修改验证的方法
2019/10/16 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
jquery js 获取时间差、时间格式具体代码
2013/06/05 Javascript
Extjs实现进度条的两种便捷方式
2013/09/26 Javascript
js实现目录定位正文示例
2013/11/14 Javascript
不提示直接关闭网页窗口的JS示例代码
2013/12/17 Javascript
网页收藏夹显示ICO图标(代码少)
2015/08/04 Javascript
封装获取dom元素的简单实例
2016/07/08 Javascript
详细分析Javascript中创建对象的四种方式
2016/08/17 Javascript
Javascript计算二维数组重复值示例代码
2016/12/18 Javascript
原生js实现打字动画游戏
2017/02/04 Javascript
jQuery实现图片滑动效果
2017/03/08 Javascript
前端主流框架vue学习笔记第一篇
2017/07/26 Javascript
JavaScript学习笔记之数组基本操作示例
2019/01/09 Javascript
[15:20]DOTA2亚洲邀请赛总决赛开幕式表演:羽泉献唱
2017/04/05 DOTA
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
浅谈Scrapy框架普通反爬虫机制的应对策略
2017/12/28 Python
python之消除前缀重命名的方法
2018/10/21 Python
django框架自定义模板标签(template tag)操作示例
2019/06/24 Python
浅谈Python中函数的定义及其调用方法
2019/07/19 Python
pytorch索引查找 index_select的例子
2019/08/18 Python
使用tqdm显示Python代码执行进度功能
2019/12/08 Python
利用python清除移动硬盘中的临时文件
2020/10/28 Python
Django框架请求生命周期实现原理
2020/11/13 Python
基于IE10/HTML5 开发
2013/04/22 HTML / CSS
爱奇艺VIP会员:大剧抢先看
2018/07/11 全球购物
机械工程师求职自我评价
2013/09/23 职场文书
店面销售职位的职责
2014/03/09 职场文书
竞争上岗实施方案
2014/03/21 职场文书
单位委托书怎么写
2014/09/21 职场文书
代领报检证委托书范本
2014/10/11 职场文书
兴趣班停课通知
2015/04/24 职场文书
Mysql如何查看是否使用到索引
2022/12/24 MySQL