说明:这里没练习静态自动验证:如果用到静态验证首先自定义一个控制器,再在Model文件夹里创建一个NiHaoModel.php 类  NiHao是自定义的,前缀可以随意,但是一定要用驼峰法(首字母大写)

在自定义控制器里用D()方法时里面要写入NiHaoModel.php 类的前缀 NiHao   因为有这串代码 protected $trueTableName = 'yonghu'; //作用是找到真实表名,系统默认找yong_hu这个表,需要定义此方法,才能找到yonghu表

<?php
namespace Admin\Model;
use Think\Model;
class NiHaoModel extends Model
{
//protected $tablePrefix = "";
protected $trueTableName = 'yonghu'; //作用是找到真实表名,系统默认找yong_hu这个表,需要定义此方法,才能找到yonghu表
protected $_validate =array(//固定模式,在父类里面已定义
array('uid','require','用户名不能为空!',0),//非空验证:给yonghu表中的uid列,设置非空
array('pwd','pwd1','输入的密码不一致',0,'confirm'),//相等验证:confirm(验证表单中的两个字段是否相同,定义的验证规则是一个字段名),意思是pwd1必须为字段
array('email','email','邮箱格式不正确',0),
array('name','/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/','身份证号不正确',0,'regex'),//正则表达式,
array('age','18,50','年龄不在范围内',0,'between')//范围验证:
);
}

动态验证:(不需要建Model模型)

1.建一个控制器,做表单操作(包含验证)

<?php
namespace Biaodan\Controller;
use Think\Controller;
class BiaodanController extends Controller
{
public function test()
{
if(empty($_POST))//如果$_POST空,显示添加页面,
{
$this->show();
}
else //如果$_POST不为空,走验证,验证是否成功,添加数据库
{
$y = D("yonghu");
$arr = array(//造一个验证规则
array('uid','require','用户名不能为空!',0),
array('pwd','pwd1','输入的密码不一致',0,'confirm'),//相等验证:confirm(验证表单中的两个字段是否相同,定义的验证规则是一个字段名),意思是pwd1必须为字段
array('email','email','邮箱格式不正确',0),
array('name','/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/','身份证号不正确',0,'regex'),//正则表达式,
array('age','18,50','年龄不在范围内',0,'between')//范围验证
);
if($y->validate($arr)->create())//$y->validate($arr),添加之前执行验证规则
{
$y->add();
}
else
{
die($y->getError());
}
}
}
}

2.对应控制器方法的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>
</head> <body>
<form action="__ACTION__" method="post">
<br />
<br />
<br />
<br /> <div>用户名:<input type="text" name="uid" /></div>
<br />
<div>密码:<input type="text" name="pwd" /></div>
<br />
<div>确认密码:<input type="text" name="pwd1" /></div>
<br />
<div>姓名:<input type="text" name="name" /></div>
<br />
<div>邮箱:<input type="text" name="email" /></div>
<br />
<div>年龄:<input type="text" name="age" /></div>
<br />
<div><input type="submit" value="添加" /></div> </form>
</body>
</html>

ajax:(不需要建Model模型)

1.建一个控制器,做表单操作(包含验证)

<?php
namespace Admin\Controller;
use Think\Controller;
class ZhuCeController extends Controller { public function add(){ $this->show(); } public function addchuli(){
$y = D("yonghubiao");
$arr = array(
array('uid','require','用户名不能为空!!'),//ps: require 意思是字段必须,就是不能为空
array('pwd','require','两次密码不一致!'),
array('name','require','没有填写名称!!'),
array('email','email','邮箱格式不正确!!'),
array('age','/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/','身份证不合法',0,'regex'),
); if($y->validate($arr)->create()){
$y->add();
$this->ajaxReturn("注册成功","eval");
}else{
$this->ajaxReturn($y->getError(),"eval");
}
}
}

2.对应控制器方法的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" />
<script src="__PUBLIC__/js/jquery-1.11.2.min.js"></script>
<title>用户注册</title>
</head> <body>
<br />
<br />
<br /> <div>用户名:<input type="text" id="uid" /></div>
<br />
<div>&nbsp;密码:<input type="text" id="pwd" /></div>
<br />
<div>&nbsp;名称:<input type="text" id="name" /></div>
<br />
<div>&nbsp;邮箱:<input type="text" id="email" /></div>
<br />
<div>身份证号:<input type="text" id="age" /></div>
<br />
<div><input type="button" id="dtn" value="提交" /></div>
</body>
<script type="text/javascript">
$("#dtn").click(function(){
var uid = $("#uid").val();
var pwd = $("#pwd").val();
var name = $("#name").val();
var email = $("#email").val();
var age = $("#age").val(); $.ajax({
url:"__CONTROLLER__/addchuli",
data:{uid:uid,pwd:pwd,name:name,email:email,age:age},
dataType:"TEXT",
type:"POST",
success: function(data){ alert(data);
} });
}); </script>
</html>

Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册的更多相关文章

  1. ThinkPHP框架表单验证

    对注册到test表的表单进行验证 在注册之前要对表单进行验证: 用户名非空验证,两次输入密码必须一致即相等验证,年龄在18~50之间即范围验证,邮箱格式正则验证. 自动验证是ThinkPHP模型层提供 ...

  2. ThinkPHP框架表单验证AJAX

    验证有两种方式:静态验证与动态验证. 一.静态验证 在模型类里面预先定义好该模型的自动验证规则,我们称为静态定义. 验证时要在test表的Model里面加验证条件:新建testModel.class. ...

  3. ThinkPHP框架 表单传值自动验证!!

    如果有多个字段都包含错误,默认只显示一个错误.如果想显示全部错误,可以设置属 性: //批量验证 d protected $patchValidate = true; 如果是直接 POST 过来的,直 ...

  4. form表单下的button按钮会自动提交表单的问题

    form表单下的button按钮会自动提交表单的问题 2017年01月05日 18:02:44 蓝色水 阅读数:18012更多 个人分类: asp.net   form表单下的按钮在没有指定type类 ...

  5. 表单元素disabled禁用后不能自动提交到服务器

    表单元素disabled禁用后不能自动提交到服务器,项目中需要一个元素只展示不修改,所以把一个input元素设置成了disabled="disabled",但是提交的时候改数据值是 ...

  6. jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因

    jquery.validate.js 验证表单时,在IE当中未验证就直接提交的原因 今天利用了jquery.validate.js来验证表单,发现在火狐.谷歌浏览器当中都可以进行验证,但是在IE系列浏 ...

  7. tp框架表单提交注意!不要提交到当前方法

    tp框架  表单提交到当前方法,会重复执行显示部分和保存部分的代码.导致不知名的错误.

  8. 表单(form)成为 ajax 提交的表单(form)

    1.form <form id="ff" method="post"> <div> <label for="name&q ...

  9. tp框架表单验证

    之前的表单验证都是用js写的,这里也可以使用tp框架的验证.但是两者比较而言还是js验证比较好,因为tp框架验证会运行后台代码,这样运行速度和效率就会下降. 自动验证是ThinkPHP模型层提供的一种 ...

随机推荐

  1. 如何成为一名Top DevOps Engineer

    软件世界的战场 如果你对devops的概念不是很了解的话,没有关系,可以先跳到维基百科阅读一下DevOps条目.有了模模糊糊的概念之后, 我们先抛开所有市面上对于devops的各种夸大和炒作,首先来思 ...

  2. Dictionary简洁

    mydic_ShuiFei = new Dictionary<string, string>() {             {"00000336","南京市 ...

  3. ui-router 1.0 003 lazyloading

    ui-router lazyloading 支持懒加载, 真正需要的时候再去加载模块

  4. C#中Invoke的用法2

    在用.NET Framework框架的WinForm构建GUI程序界面时,如果要在控件的事件响应函数中改变控件的状态,例如:某个按钮上的文本原先叫“打开”,单击之后按钮上的文本显示“关闭”,初学者往往 ...

  5. Zabbix agent 在windows上安装部署

    Zabbix agent 在windows上安装部署 1.下载与解压 地址: http://www.zabbix.com/downloads/2.4.4/zabbix_agents_2.4.4.win ...

  6. C语言定义共享全局变量

    好久没写C语言了,突然忘记怎么定义全局共享变量了,由于老项目的Code Base都是C的风格,其中又大量用了全局变量,只能跟着糊一坨shit上去了.没办法. 再共享全局变量的global_shared ...

  7. ios中输入框的父类--文本框,DataPick,pickerview

    父控制器 #import <UIKit/UIKit.h> #import "ScrollViewExt.h" @interface BaseKeyBoardCtrl : ...

  8. PyCharm for Mac(Python 开发工具)破解版安装

    1.软件简介    PyCharm 是 macOS 系统上一款 Python 编辑利器,具有智能代码编辑器,能理解 Python 的特性并提供卓越的生产力推进工具:自动代码格式化.代码完成.重构.自动 ...

  9. 解决ScrollView嵌套RecyclerView的显示及滑动问题

        项目中时常需要实现在ScrollView中嵌入一个或多个RecyclerView.这一做法通常会导致如下几个问题 页面滑动卡顿 ScrollView高度显示不正常 RecyclerView内容 ...

  10. 关于NSString的@""和nil时的判断方法

    1.NSString *str = @"";该语句代表是一个空串,并且不为nil,占有内存空间 2.NSString *str = nil;该语句代表,str不指向任何对象,指针指 ...