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 相关文章推荐
基于Linux调试工具strace与gdb的常用命令总结
Jun 03 PHP
PHP中$_FILES的使用方法及注意事项说明
Feb 14 PHP
PHP中new static()与new self()的区别异同分析
Aug 22 PHP
一个php生成16位随机数的代码(两种方法)
Sep 16 PHP
通过php添加xml文档内容的方法
Jan 23 PHP
深入解析PHP的Yii框架中的缓存功能
Mar 29 PHP
Joomla数据库操作之JFactory::getDBO用法
May 05 PHP
php上传图片类及用法示例
May 11 PHP
thinkPHP实现递归循环栏目并按照树形结构无限极输出的方法
May 19 PHP
数组任意位置插入元素,删除特定元素的实例
Mar 02 PHP
thinkphp5 URL和路由的功能详解与实例
Dec 26 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 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中3种方法统计字符串中每种字符的个数并排序
2012/08/27 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
PHP session会话操作技巧小结
2016/09/27 PHP
php7函数,声明,返回值等新特性介绍
2018/05/25 PHP
Smarty模板配置实例简析
2019/07/20 PHP
Javascript this指针
2009/07/30 Javascript
使用jQuery的easydrag插件实现可拖动的DIV弹出框
2016/02/19 Javascript
基于jstree使用AJAX请求获取数据形成树
2017/08/29 Javascript
vue中路由验证和相应拦截的使用详解
2017/12/13 Javascript
vue组件中使用props传递数据的实例详解
2018/04/08 Javascript
vue+express 构建后台管理系统的示例代码
2018/07/19 Javascript
jquery 通过ajax请求获取后台数据显示在表格上的方法
2018/08/08 jQuery
vue初始化动画加载的实例
2018/09/01 Javascript
基于JS抓取某高校附近共享单车位置 使用web方式展示位置变化代码实例
2019/08/27 Javascript
vue登录页实现使用cookie记住7天密码功能的方法
2021/02/18 Vue.js
Python中的exec、eval使用实例
2014/09/23 Python
Python ValueError: invalid literal for int() with base 10 实用解决方法
2015/06/21 Python
Python爬虫实现百度图片自动下载
2018/02/04 Python
关于Python作用域自学总结
2019/06/10 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
django处理select下拉表单实例(从model到前端到post到form)
2020/03/13 Python
html5拖曳操作 HTML5实现网页元素的拖放操作
2013/01/02 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
英国鲜花速递:Serenata Flowers
2018/04/03 全球购物
Farfetch阿联酋:奢侈品牌时尚购物平台
2019/07/26 全球购物
护理个人求职信范文
2014/01/08 职场文书
进口业务员岗位职责
2014/04/06 职场文书
酒店节能减排方案
2014/05/26 职场文书
小学校长汇报材料
2014/08/20 职场文书
五四青年节的活动方案
2014/08/20 职场文书
公司转让协议书
2016/03/19 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
springboot 启动如何排除某些bean的注入
2021/08/02 Java/Android
Redis 的查询很快的原因解析及Redis 如何保证查询的高效
2022/03/16 Redis
使用Python开发冰球小游戏
2022/04/30 Python