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 相关文章推荐
Apache2中实现多网站域名绑定的实现方法
Jun 01 PHP
php学习笔记 面向对象中[接口]与[多态性]的应用
Jun 16 PHP
php设计模式 Visitor 访问者模式
Jun 28 PHP
使用php验证复选框有效性的示例
Nov 13 PHP
更改localhost为其他名字的方法
Feb 10 PHP
ThinkPHP CURD方法之page方法详解
Jun 18 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
Aug 22 PHP
php基于base64解码图片与加密图片还原实例
Nov 03 PHP
PHP SplObjectStorage使用实例
May 12 PHP
PHP无限极分类函数的实现方法详解
Apr 15 PHP
laravel异步监控定时调度器实例详解
Jun 21 PHP
PHP实现简易图形计算器
Aug 28 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程序效率优化的一些策略小结
2010/07/17 PHP
php之Memcache学习笔记
2013/06/17 PHP
Linux下手动编译安装PHP扩展的例子分享
2014/07/15 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
javascript实现unicode和字符的互相转换
2007/07/18 Javascript
比较简单的异步加载JS文件的代码
2009/07/18 Javascript
JS获得URL超链接的参数值实例代码
2013/06/21 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
JavaScript运行时库属性一览表
2014/03/14 Javascript
jQuery html()方法使用不了无法显示内容的问题
2014/08/06 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
JS阻止事件冒泡行为和闭包的方法
2016/06/16 Javascript
JS中如何实现点击a标签返回页面顶部的问题
2017/01/19 Javascript
值得分享和收藏的xmlplus组件学习教程
2017/05/05 Javascript
vue打包使用Nginx代理解决跨域问题
2018/08/27 Javascript
angularjs的单选框+ng-repeat的实现方法
2018/09/12 Javascript
Vue基础配置讲解
2019/11/29 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
开发Node CLI构建微信小程序脚手架的示例
2020/03/27 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
python各种语言间时间的转化实现代码
2016/03/23 Python
python实现音乐下载的统计
2018/06/20 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
Pygame框架实现飞机大战
2020/08/07 Python
python分布式爬虫中消息队列知识点详解
2020/11/26 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
世界上最全面的草药补充剂和顶级品牌维生素网站:HerbsPro
2019/01/20 全球购物
介绍一下write命令
2014/08/10 面试题
搬家公司的创业计划书
2014/01/01 职场文书
投标邀请书范文
2014/01/31 职场文书
司仪主持词两篇
2014/03/22 职场文书
教育基金募捐倡议书
2014/05/14 职场文书
CSS3鼠标悬浮过渡缩放效果
2021/04/17 HTML / CSS
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers