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使之能同时支持GIF和JPEG
Oct 09 PHP
用PHP实现 上一篇、下一篇的代码
Sep 29 PHP
用 Composer构建自己的 PHP 框架之基础准备
Oct 30 PHP
PHP检测字符串是否为UTF8编码的常用方法
Nov 21 PHP
thinkphp中session和cookie无效的解决方法
Dec 19 PHP
php使用Session和文件统计在线人数
Jul 04 PHP
WordPress中用于获取文章作者与分类信息的方法整理
Dec 17 PHP
php实现计算百度地图坐标之间距离的方法
May 05 PHP
使用PHP+MySql实现微信投票功能实例代码
Sep 29 PHP
thinkPHP中U方法加密传递参数功能示例
May 29 PHP
PHP lcfirst()函数定义与用法
Mar 08 PHP
Laravel 5.4前后台分离,通过不同的二级域名访问方法
Oct 13 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
初探PHP5
2006/10/09 PHP
让PHP更快的提供文件下载的代码
2012/06/13 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
imagettftext() 失效,不起作用
2021/03/09 PHP
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
jqueyr判断checkbox组的选中(示例代码)
2013/11/08 Javascript
各浏览器对document.getElementById等方法的实现差异解析
2013/12/05 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
jquery实现在光标位置插入内容的方法
2015/02/05 Javascript
jquery使用animate方法实现控制元素移动
2015/03/27 Javascript
AngularJS基础 ng-repeat 指令简单示例
2016/08/03 Javascript
Jq通过td获取同行其它列td的方法
2016/10/05 Javascript
微信小程序 页面跳转事件绑定的实例详解
2017/09/20 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
JS运动特效之完美运动框架实例分析
2018/01/24 Javascript
浅谈webpack打包之后的文件过大的解决方法
2018/03/07 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
微信小程序用户位置权限的获取方法(拒绝后提醒)
2018/11/15 Javascript
详解Vue.js 作用域、slot用法(单个slot、具名slot)
2019/10/15 Javascript
Python编程中对文件和存储器的读写示例
2016/01/25 Python
python实现dijkstra最短路由算法
2019/01/17 Python
用Python从0开始实现一个中文拼音输入法的思路详解
2019/07/20 Python
关于python tushare Tkinter构建的简单股票可视化查询系统(Beta v0.13)
2020/10/19 Python
python 实现数据库中数据添加、查询与更新的示例代码
2020/12/07 Python
日本食品网上商店:JaponShop.com
2017/11/28 全球购物
利物浦足球俱乐部官方商店(美国):Liverpool FC US
2019/10/09 全球购物
白酒市场开发计划书
2014/01/09 职场文书
《长城》教学反思
2014/02/14 职场文书
2014物价局民主生活会对照检查材料思想汇报
2014/09/24 职场文书
单位委托书
2014/10/15 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
2016大一新生军训心得体会
2016/01/11 职场文书
利用Python+OpenCV三步去除水印
2021/05/28 Python
python实现简单石头剪刀布游戏
2021/10/24 Python
Python利用capstone实现反汇编
2022/04/06 Python
vue实现可以快进后退的跑马灯组件
2022/04/08 Vue.js