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 使用post,get的一种简洁方式
Apr 25 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
php安装swoole扩展的方法
Mar 19 PHP
PHP简单实现断点续传下载的方法
Sep 25 PHP
PHP中的随机性 你觉得自己幸运吗?
Jan 22 PHP
PHP中file_put_contents追加和换行的实现方法
Apr 01 PHP
PHP实践教程之过滤、验证、转义与密码详解
Jul 24 PHP
PHP实现UTF8二进制及明文字符串的转化功能示例
Nov 20 PHP
PHP实现动态添加XML中数据的方法
Mar 30 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
阿里对象存储OSS在laravel框架中的使用方法
Oct 13 PHP
PHP全局使用Laravel辅助函数dd
Dec 26 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
Uncaught exception com_exception with message Failed to create COM object
2012/01/11 PHP
PHP判断文件是否存在、是否可读、目录是否存在的代码
2012/10/03 PHP
PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
PHP中file_exists使用中遇到的问题小结
2016/04/05 PHP
爱恋千雪-US-AscII加密解密工具(网页加密)下载
2007/06/06 Javascript
JavaScript 常用函数库详解
2009/10/21 Javascript
基于JQuery的抓取博客园首页RSS的代码
2011/12/01 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
2013/04/26 Javascript
一个字符串反转函数可实现字符串倒序
2014/09/15 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
JavaScript使用delete删除数组元素用法示例【数组长度不变】
2017/01/17 Javascript
关于JS与jQuery中的文档加载问题
2017/08/22 jQuery
JSON在Javascript中的使用(eval和JSON.parse的区别)详细解析
2017/09/05 Javascript
Vue通过URL传参如何控制全局console.log的开关详解
2017/12/07 Javascript
微信小程序云开发实现云数据库读写权限
2019/05/17 Javascript
Layui实现主窗口和Iframe层参数传递
2019/11/14 Javascript
移动端JS实现拖拽两种方法解析
2020/10/12 Javascript
Python3 实现随机生成一组不重复数并按行写入文件
2018/04/09 Python
pandas DataFrame实现几列数据合并成为新的一列方法
2018/06/08 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
pygame用blit()实现动画效果的示例代码
2020/05/28 Python
如何解决python多种版本冲突问题
2020/10/13 Python
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
语文教育专业应届生求职信
2013/11/23 职场文书
大学生开西餐厅创业计划书
2014/02/01 职场文书
秘书英文求职信
2014/04/16 职场文书
课例研修方案
2014/05/31 职场文书
授权委托书范本(单位)
2014/09/28 职场文书
大学生违纪检讨书300字
2014/10/25 职场文书
先进工作者事迹材料
2014/12/23 职场文书
开幕式邀请函
2015/01/31 职场文书
工作犯错保证书
2015/05/11 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
Python Django模型详解
2021/10/05 Python
Go 中的空白标识符下划线
2022/03/25 Golang