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 相关文章推荐
火车采集器 免费版使出收费版本功能实现原理
Sep 17 PHP
批量去除PHP文件中bom的PHP代码
Mar 13 PHP
PHP中最容易忘记的一些知识点总结
Apr 28 PHP
解析phpstorm + xdebug 远程断点调试
Jun 20 PHP
php加密解密实用类分享
Jan 07 PHP
php基于PDO连接MSSQL示例DEMO
Jul 13 PHP
php微信公众平台开发之微信群发信息
Sep 13 PHP
CI框架封装的常用图像处理方法(缩略图,水印,旋转,上传等)
Nov 22 PHP
php简单实现单态设计模式的方法分析
Jul 28 PHP
PHP7扩展开发之hello word实现方法详解
Jan 15 PHP
ThinkPHP框架实现的邮箱激活功能示例
Jun 15 PHP
PHP获取MySQL执行sql语句的查询时间方法
Aug 21 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中socket的用法详解
2014/10/24 PHP
php单例模式示例分享
2015/02/12 PHP
基于php的微信公众平台开发入门实例
2015/04/15 PHP
解决FireFox下[使用event很麻烦]的问题
2006/11/26 Javascript
javascript parseInt 函数分析(转)
2009/03/21 Javascript
JavaScript DOM 学习第二章 编辑文本
2010/02/19 Javascript
showModelDialog弹出文件下载窗口的使用示例
2013/11/19 Javascript
angularjs客户端实现压缩图片文件并上传实例
2015/07/06 Javascript
根据user-agent判断蜘蛛代码黑帽跳转代码(js版与php版本)
2015/09/14 Javascript
jQuery插件Timelinr 实现时间轴特效
2015/10/04 Javascript
VueJs单页应用实现微信网页授权及微信分享功能示例
2017/07/26 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
elementUI 动态生成几行几列的方法示例
2019/07/11 Javascript
在layui中layer弹出层点击事件无效的解决方法
2019/09/05 Javascript
js实现多个标题吸顶效果
2020/01/08 Javascript
JavaScript实现Excel表格效果
2020/02/07 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
Js on及addEventListener原理用法区别解析
2020/07/11 Javascript
[46:28]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.23
2019/09/05 DOTA
Python中的ceil()方法使用教程
2015/05/14 Python
详解Python编程中time模块的使用
2015/11/20 Python
对Python的Django框架中的项目进行单元测试的方法
2016/04/11 Python
Python实现购物车购物小程序
2018/04/18 Python
Python中XlsxWriter模块简介与用法分析
2018/04/24 Python
python使用 zip 同时迭代多个序列示例
2019/07/06 Python
python3中的eval和exec的区别与联系
2019/10/10 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
python在协程中增加任务实例操作
2021/02/28 Python
全球性的女装店:storets
2019/06/12 全球购物
外语专业毕业生自我评价分享
2013/10/05 职场文书
电子商务优秀毕业生求职信
2014/07/11 职场文书
简单租房协议书范本
2014/08/20 职场文书
尊师重教演讲稿
2014/09/04 职场文书
汽车车尾标语大全
2015/08/11 职场文书
改进工作作风心得体会
2016/01/23 职场文书
javascript之Object.assign()的痛点分析
2022/03/03 Javascript