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实现ODBC数据分页显示一例
Oct 09 PHP
php 用sock技术发送邮件的函数
Jul 21 PHP
php str_replace的替换漏洞
Mar 15 PHP
php设计模式 FlyWeight (享元模式)
Jun 26 PHP
Notice: Trying to get property of non-object problem(PHP)解决办法
Mar 11 PHP
php 检查电子邮件函数(自写)
Jan 16 PHP
制作安全性高的PHP网站的几个实用要点
Dec 30 PHP
PHP生成随机字符串(3种方法)
Sep 25 PHP
PHP简单实现数字分页功能示例
Aug 24 PHP
详解Yii2 定制表单输入字段的标签和样式
Jan 04 PHP
thinkphp5框架调用其它控制器方法 实现自定义跳转界面功能示例
Jul 03 PHP
PHP连接SQL server数据库测试脚本运行实例
Aug 24 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下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
2014/11/11 PHP
PHP7.0安装笔记整理
2015/08/28 PHP
event.srcElement 用法笔记e.target
2009/12/18 Javascript
js的表单操作 简单计算器
2011/12/29 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
JavaScript中使用Math.floor()方法对数字取整
2015/06/15 Javascript
js实现新浪微博首页效果
2015/10/16 Javascript
AngularJS 避繁就简的路由
2016/07/01 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
探究JavaScript中的五种事件处理程序方式
2016/12/07 Javascript
laydate日历控件使用方法详解
2017/11/20 Javascript
微信小程序开发实现消息推送
2020/11/18 Javascript
移动端底部导航固定配合vue-router实现组件切换功能
2019/06/13 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
react-native聊天室|RN版聊天App仿微信实例|RN仿微信界面
2019/11/12 Javascript
部署Python的框架下的web app的详细教程
2015/04/30 Python
Python操作mysql数据库实现增删查改功能的方法
2018/01/15 Python
python中的文件打开与关闭操作命令介绍
2018/04/26 Python
Python3 SSH远程连接服务器的方法示例
2018/12/29 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
Jupyter加载文件的实现方法
2020/04/14 Python
QML实现钟表效果
2020/06/02 Python
JBL英国官网:JBL UK
2018/07/04 全球购物
波兰购物网站:MALL.PL
2019/05/01 全球购物
营销与策划个人求职信
2013/09/22 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
党的群众路线教育实践活动宣传方案
2014/02/23 职场文书
《将心比心》教学反思
2014/04/08 职场文书
居安思危观后感
2015/06/11 职场文书
幼儿园大班开学寄语(2016秋季)
2015/12/03 职场文书
MySQL主从搭建(多主一从)的实现思路与步骤
2021/05/13 MySQL
Python中的turtle画箭头,矩形,五角星
2022/03/16 Python