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中常用字符串处理代码片段整理
Nov 07 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
PHP实现模仿socket请求返回页面的方法
Nov 04 PHP
PHP通过内置函数memory_get_usage()获取内存使用情况
Nov 20 PHP
php约瑟夫问题解决关于处死犯人的算法
Mar 23 PHP
基于linnux+phantomjs实现生成图片格式的网页快照
Apr 15 PHP
PHP生成唯一订单号的方法汇总
Apr 16 PHP
php实现curl模拟ftp上传的方法
Jul 29 PHP
PHP new static 和 new self详解
Feb 19 PHP
php根据命令行参数生成配置文件详解
Mar 15 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
Dec 31 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查询ip所在地的方法
2014/12/05 PHP
Yii实现自动加载类地图的方法
2015/04/01 PHP
php实现的简单多进程服务器类完整示例
2020/02/01 PHP
显示、隐藏密码
2006/07/01 Javascript
激活 ActiveX 控件
2006/10/09 Javascript
用js生产批量批处理执行命令
2008/07/28 Javascript
Wordpress ThickBox 添加“查看原图”效果代码
2010/12/11 Javascript
终于解决了IE8不支持数组的indexOf方法
2013/04/03 Javascript
javascript:;与javascript:void(0)使用介绍
2013/06/05 Javascript
js实现简单的星级选择器提交效果适用于评论等
2013/10/18 Javascript
js数组循环遍历数组内所有元素的方法
2014/01/18 Javascript
JavaScript将取代AppleScript?
2014/09/18 Javascript
js实现有过渡渐变效果的图片轮播相册(兼容IE,ff)
2016/01/19 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
Vue常用指令V-model用法
2017/03/08 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
vue 2.0项目中如何引入element-ui详解
2017/09/06 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
JavaScript之数组扁平化详解
2019/06/03 Javascript
vue 集成 vis-network 实现网络拓扑图的方法
2019/08/07 Javascript
[01:26]神话结束了,却也刚刚开始——DOTA2新英雄玛尔斯驾临战场
2019/03/10 DOTA
Python数据类型中的“冒号“[::]——分片与步长操作示例
2018/01/24 Python
学习Python3 Dlib19.7进行人脸面部识别
2018/01/24 Python
Python3 读、写Excel文件的操作方法
2018/10/20 Python
python 获取url中的参数列表实例
2018/12/18 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
pytorch之inception_v3的实现案例
2020/01/06 Python
Python Map 函数的使用
2020/08/28 Python
Python特殊属性property原理及使用方法解析
2020/10/09 Python
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
给校长的建议书500字
2014/05/15 职场文书
杭州黄龙洞导游词
2015/02/10 职场文书
小学教代会开幕词
2016/03/04 职场文书
Redis特殊数据类型Geospatial地理空间
2022/06/01 Redis