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 相关文章推荐
一个用于MySQL的PHP XML类
Oct 09 PHP
用php实现批量查询清除一句话后门的代码
Jan 20 PHP
PHP 源代码压缩小工具
Dec 22 PHP
php操作SVN版本服务器类代码
Nov 27 PHP
PHP批量检测并去除文件BOM头代码实例
May 08 PHP
兼容PHP和Java的des加密解密代码分享
Jun 26 PHP
codeigniter上传图片不能正确识别图片类型问题解决方法
Jul 25 PHP
Zend Framework实现多服务器共享SESSION数据的方法
Mar 22 PHP
php 实现301重定向跳转实例代码
Jul 18 PHP
PHP实现对文件锁进行加锁、解锁操作的方法
Jul 04 PHP
PHP使用Redis长连接的方法详解
Feb 12 PHP
PHP单元测试配置与使用方法详解
Dec 27 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
漫威DC御用漫画家去世 他的表情包曾走红网络
2020/04/09 欧美动漫
php array_slice函数的使用以及参数详解
2008/08/30 PHP
PHP学习笔记 (1) 环境配置与代码调试
2011/06/19 PHP
对淘宝URL中ID提取的PHP代码
2013/09/01 PHP
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
鼠标滚轮改变图片大小的示例代码
2013/11/20 Javascript
jquery 字符串切割函数substring的用法说明
2014/02/11 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
javascript实现确定和取消提示框效果
2015/07/10 Javascript
javascript实现在指定元素中垂直水平居中
2015/09/13 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
浅谈angular.js跨域post解决方案
2017/08/30 Javascript
Js中async/await的执行顺序详解
2017/09/22 Javascript
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python实现爬取知乎神回复简单爬虫代码分享
2015/01/04 Python
Python中使用socket发送HTTP请求数据接收不完整问题解决方法
2015/02/04 Python
Pyhthon中使用compileall模块编译源文件为pyc文件
2015/04/28 Python
在Django的form中使用CSS进行设计的方法
2015/07/18 Python
简单介绍使用Python解析并修改XML文档的方法
2015/10/15 Python
Python数据结构与算法之完全树与最小堆实例
2017/12/13 Python
python实时检测键盘输入函数的示例
2019/07/17 Python
Tensorflow实现神经网络拟合线性回归
2019/07/19 Python
Python requests模块基础使用方法实例及高级应用(自动登陆,抓取网页源码)实例详解
2020/02/14 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
俄罗斯第一家篮球店:StreetBall
2020/07/30 全球购物
应届生财务管理求职信
2013/11/06 职场文书
弘扬雷锋精神活动演讲稿
2014/03/04 职场文书
2015年专项整治工作总结
2015/04/03 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
党员转正大会主持词
2015/07/02 职场文书
90条交通安全宣传标语
2019/10/12 职场文书
javascript的var与let,const之间的区别详解
2022/02/18 Javascript