使用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 表单自动验证实例 验证规则的数组 直接写在相应的控制器里的更多相关文章

  1. thinkPHP 表单自动验证功能

    昨天晚上我们老大叫我弄表单自动验证功能,愁了半天借鉴了好多官网的知识,才出来,诶,总之分享一下我自己的成果吧! thinkphp 在Model基类为我们定义了自动验证的函数和正则表达式,我们只需要在对 ...

  2. 按下enter键后表单自动提交问题

    在HTML的form表单里,按下enter键之后,默认情况下表单会自动提交. 在公司一个项目里,按下enter键自动提交表单的查询结果与按下搜索框的搜索结果页面显示不一样,按下搜索按钮之后是通过Aja ...

  3. EasyUI中在表单提交之前进行验证

    使用EasyUi我们可以在客户端表单提交之前进行验证,过程如下:只需在onSubmit的时候使用return  $("#form1").form('validate')方法即可,E ...

  4. AngularJS 表单提交后显示验证信息与失焦后显示验证信息

    虽然说AngularJS的实时表单验证非常有用,非常高效方便,但是当用户还没有完成输入时便弹出一个错误提示,这种体验是非常糟糕的. 正常的表单验证逻辑应该是在用户提交表单后或完成当前字段中的输入后,再 ...

  5. #-webkit-autofill##google#启用表单自动填充时,如何覆盖黄色背景

    google和opera浏览器的表单自动填充后,输入框均会变成黄色背景,黑色字体.如下图. 这样的话会与网页的整体设计风格不一致,怎样自定义样式,来覆盖黄色背景. 首先来看看是什么导致的,右键查看元素 ...

  6. chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式。

    参考blog来自 http://segmentfault.com/q/1010000000671971 chrome浏览器当表单自动填充时,怎么去除浏览器自动添加的默认样式. 一.发现该问题的原因-是 ...

  7. AngularJS实现表单手动验证和表单自动验证

    AngularJS的表单验证大致有两种,一种是手动验证,一种是自动验证.一.手动验证 所谓手动验证是通过AngularJS表单的属性来验证.而成为AngularJS表单必须满足两个条件: 1.给for ...

  8. Html 中表单提交的一些知识总结——防止表单自动提交,以及submit和button提交表单的区别

    转自:http://jackaudrey.blog.163.com/blog/static/1314217882010590041833/ 在页面中有多个input type="text&q ...

  9. chrome、firefox表单自动提交诱因 -- 非type=hidden的单输入域(input)

    开发任务中遇到很费解的一个form自动提交问题,form中只有一个input时回车会触发自动提交表单,当在多一个非type=hidden的input时,又不会出现表单自动提交. 代码示例: 会出现自动 ...

随机推荐

  1. Go:反射

    一.通过反射获取类型信息 在 Go 程序中,使用 reflect.TypeOf() 函数可以获得任意值的类型对象(reflect.Type),程序通过类型对象可以访问任意值的类型信息. package ...

  2. perl学习之:package and module

    perl的包(package)和模块(PM) ==================================包package===========================     pac ...

  3. Django框架基础知识14-类视图

    MTV view视图 wsgi函数 def index(request): .... return HttpResponse() 特定的HTTP方法.get,post可以定义单独的方法 继承,多继承, ...

  4. viva correction statements

    * List of amendments| No. | Location     | Amendments                                                ...

  5. 算法导论 第九章 中位数和顺序统计量(python)

    第i个顺序统计量:该集合中第i小的元素(建集合排序后第i位 当然算法可以不排序) 中位数:集合中的中点元素 下中位数 上中位数 9.1最大值和最小值 单独的max或min每个都要扫一遍 n-1次比较 ...

  6. 【02】koala编译中文出错(已放弃不用)

    http://koala-app.com/index-zh.html koala 下载地址.     sass.中文编译出错: 打开 Koala文件夹位置->rubygems->gems- ...

  7. openGL加载obj文件+绘制大脑表层+高亮染色

    绘制大脑表层并高亮染色的工作是以openGL加载obj文件为基础的,这里是我们用到的原始程序:只能加载一个obj文件的demo. 然而,一个完整的大脑表层是由很多分区组成的,因此我们的程序需要支持两个 ...

  8. nginx反向代理ajax,解决跨域问题

    server { listen 8000; server_name somename alias another.alias; location /a { add_header 'Access-Con ...

  9. ListView更新问题

    ListView和Adapter对象均具备有对象更新方法 ListView对象列表的更新方法1.invalidate();--重绘组件2.invlidateView()--重绘组件并包含所有的View ...

  10. uva 10559

    记忆话搜索 DP 看了网上题解  状态方程真是巧妙 orz #include <cstdio> #include <cstdlib> #include <cmath> ...