2016/05/15 ThinkPHP3.2.2 表单自动验证实例 验证规则的数组 直接写在相应的控制器里
使用TP 3.2框架
验证规则也可以写到模型里,但感觉有些麻烦,
一是有时候不同页面验证的方式会不一样,
二是看到这个 Add 事件里的代码,就清楚要接收什么数据,如何验证数据能够在第一眼有个大致了解
①控制器代码页
<?php
namespace Home\Controller;
use Think\Controller; header("Content-type: text/html; charset=utf-8"); class AddController extends Controller{ public function Add()
{ $rule=array( //自动验证的规则数组
array('Ids','require','编号不能为空'),
array('Name','require','用户名不能为空'),
array('Price','require','价格不能为空'),
array('Source','require','产地不能为空'),
);
$m=D('fruit');
if (empty($_POST)) {
$this->display();
} else{ $z=$m->field('Ids,Name,Price,Source')->validate($rule)->create();//create方法调用数组中的规则进行验证 // $m->Ids=$_POST['ids'];
// $m->Name=$_POST['name'];
// $m->Price=$_POST['price'];
// $m->Source=$_POST['source'];
//->field('Ids,Name,Price,Source')
//var_dump($z); if ($z) {
$m->add();
//$this->success('数据添加成功','User/User');
$this->redirect('User/User');
}
else
{
//$this->error('数据添加失败');
echo $m->getError();
} } } }
② 模板显示页面
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>添加</title>
</head>
<body> <div align="center" style="margin-top:30px; ">
<h1>添加页面</h1>
<form action="/tp/index.php/Home/Add/Add" method="post">
编号:<input type="text" name="Ids"><br><br>
名称:<input type="text" name="Name"><br><br>
价格:<input type="text" name="Price"><br><br>
产地:<input type="text" name="Source"><br><br>
<input type="submit" value="点击添加"></input> <input type="reset" value="重置"></input>
</form> </div>
</body>
</html>
网络搜集到的相同方法的案例:
public function anyvalidate(){
//验证规则
$rule=array(
array('name','require','请输入姓名',1),//必须验证name
);
$m=M('user');
//获取name,sex,contact数据到模型,并验证
if(!$m->field('name,sex,contact')->validate($rule)->create())
$this->error($m->getError());
$result=$m->add();
if(!$result)
$this->error('添加失败');
$this->success('添加成功',U('dir'));
}
2016/05/15 ThinkPHP3.2.2 表单自动验证实例 验证规则的数组 直接写在相应的控制器里的更多相关文章
- thinkPHP 表单自动验证功能
昨天晚上我们老大叫我弄表单自动验证功能,愁了半天借鉴了好多官网的知识,才出来,诶,总之分享一下我自己的成果吧! thinkphp 在Model基类为我们定义了自动验证的函数和正则表达式,我们只需要在对 ...
- 按下enter键后表单自动提交问题
在HTML的form表单里,按下enter键之后,默认情况下表单会自动提交. 在公司一个项目里,按下enter键自动提交表单的查询结果与按下搜索框的搜索结果页面显示不一样,按下搜索按钮之后是通过Aja ...
- EasyUI中在表单提交之前进行验证
使用EasyUi我们可以在客户端表单提交之前进行验证,过程如下:只需在onSubmit的时候使用return $("#form1").form('validate')方法即可,E ...
- AngularJS 表单提交后显示验证信息与失焦后显示验证信息
虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...
- #-webkit-autofill##google#启用表单自动填充时,如何覆盖黄色背景
google和opera浏览器的表单自动填充后,输入框均会变成黄色背景,黑色字体.如下图. 这样的话会与网页的整体设计风格不一致,怎样自定义样式,来覆盖黄色背景. 首先来看看是什么导致的,右键查看元素 ...
- chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式。
参考blog来自 http://segmentfault.com/q/1010000000671971 chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式. 一.发现该问题的原因-是 ...
- AngularJS实现表单手动验证和表单自动验证
AngularJS的表单验证大致有两种,一种是手动验证,一种是自动验证.一.手动验证 所谓手动验证是通过AngularJS表单的属性来验证.而成为AngularJS表单必须满足两个条件: 1.给for ...
- Html 中表单提交的一些知识总结——防止表单自动提交,以及submit和button提交表单的区别
转自:http://jackaudrey.blog.163.com/blog/static/1314217882010590041833/ 在页面中有多个input type="text&q ...
- chrome、firefox表单自动提交诱因 -- 非type=hidden的单输入域(input)
开发任务中遇到很费解的一个form自动提交问题,form中只有一个input时回车会触发自动提交表单,当在多一个非type=hidden的input时,又不会出现表单自动提交. 代码示例: 会出现自动 ...
随机推荐
- day22 01 初识面向对象----简单的人狗大战小游戏
day22 01 初识面向对象----简单的人狗大战小游戏 假设有一个简单的小游戏:人狗大战 怎样用代码去实现呢? 首先得有任何狗这两个角色,并且每个角色都有他们自己的一些属性,比如任务名字nam ...
- win10和office2013激活
1.去网上找kms,也可以在这下载————http://pan.baidu.com/s/1sjEAvwD————PS:找好对应的版本 2.首次运行时,只能点击激活windows VL和office 2 ...
- LeetCode(15) 3Sum
题目 Given an array S of n integers, are there elements a, b, c in S such that a + b + c = 0? Find all ...
- 【BZOJ 3555】 [Ctsc2014]企鹅QQ(哈希)
Description PenguinQQ是中国最大.最具影响力的SNS(Social Networking Services)网站,以实名制为基础,为用户提供日志.群.即时通讯.相册.集市等丰富强大 ...
- 关于shell中常见功能的实现方式总结
一.shell脚本中连接数据库 二.
- asp网页无法打开
环境:Window 2003.IIS6.Framework1.1 .VS2003 一个WebForm项目里面包含一些asp网页 运行后发现asp页面无法访问 提示:无法找到该页 解决方案: 1. [ ...
- 本机操作Excel文件提示错误:未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序。
解决办法是: 选择项目-->右键"属性"-->生成-->目标平台-->选择X86或者首选32位
- irules事件和命令
- 【HDOJ6315】Naive Operations(线段树,树状数组)
题意: 两个序列a和b,初始a[i]=0,b[i]给定且为一个1到n的排列,要求维护以下两种操作:1.区间[L,R]内a[i]加1 2.询问[L,R]内a[i]/b[i](下取整)之和 n,q< ...
- Linux虚拟机fdisk分区
以下操作全部基于win7 64位系统上的Linux虚拟机(CentOS6.6). 当Linux虚拟机的硬盘空间不够用时,可以手动添加硬盘块,流程如下: 右键虚拟机,点击“Add”按钮: 选择“Hard ...