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 相关文章推荐
手把手教你使用DedeCms的采集的图文教程
Mar 11 PHP
通过PHP CLI实现简单的数据库实时监控调度
Jul 01 PHP
重新认识php array_merge函数
Aug 31 PHP
PHP结合jQuery插件ajaxFileUpload实现异步上传文件实例
Aug 17 PHP
PHP中利用sleep函数实现定时执行功能实现代码
Aug 25 PHP
PHP数组相加操作及与array_merge的区别浅析
Nov 26 PHP
PHPCMS手机站伪静态设置详细教程
Feb 06 PHP
PHP实现添加购物车功能
Mar 06 PHP
php成功操作redis cluster集群的实例教程
Jan 13 PHP
php操作redis常见方法示例【key与value操作】
Apr 14 PHP
php swoft框架实例用法
Dec 22 PHP
如何用Laravel包含你自己的帮助函数
May 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
eWebEditor v3.8 商业完整版 (PHP)
2006/12/06 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
通过PHP设置BugFree获取邮箱通知
2019/04/25 PHP
摘自启点的main.js
2008/04/20 Javascript
javascript Split方法,indexOf方法、lastIndexOf 方法和substring 方法
2009/03/21 Javascript
jQuery的实现原理的模拟代码 -3 事件处理
2010/08/03 Javascript
主页面中的两个iframe实现鼠标拖动改变其大小
2013/04/16 Javascript
正负小数点后两位浮点数实现原理及代码
2013/09/06 Javascript
JS实现遮罩层效果的简单实例
2013/11/12 Javascript
JavaScript设计模式之适配器模式介绍
2014/12/28 Javascript
jquery可定制的在线UEditor编辑器
2015/11/17 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
微信小程序 解析网页内容详解及实例
2017/02/22 Javascript
详解React-Native解决键盘遮挡问题(Keyboard遮挡问题)
2017/07/13 Javascript
js指定步长实现单方向匀速运动
2017/07/17 Javascript
[00:32]DOTA2上海特级锦标赛 COL战队宣传片
2016/03/04 DOTA
Python解析树及树的遍历
2016/02/03 Python
Python中常用操作字符串的函数与方法总结
2016/02/04 Python
Python实现的摇骰子猜大小功能小游戏示例
2017/12/18 Python
Python3.6.0+opencv3.3.0人脸检测示例
2018/05/25 Python
python实现将汉字保存成文本的方法
2018/11/16 Python
pandas数据处理进阶详解
2019/10/11 Python
python生成特定分布数的实例
2019/12/05 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
巴西男士个人护理产品商店:SHOP4MEN
2017/08/07 全球购物
欧洲最大的拼图游戏商店:JigsawPuzzle.co.uk
2018/07/04 全球购物
ellesse美国官方商店:意大利高级运动服品牌
2019/10/29 全球购物
linux下进程间通信的方式
2013/01/23 面试题
采购主管的岗位职责
2013/12/17 职场文书
优秀教师的感人事迹
2014/02/04 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
运动会800米加油稿
2014/02/22 职场文书
2014年母亲节寄语
2014/05/07 职场文书
《乌鸦喝水》教学反思
2016/02/19 职场文书