ajax+表单验证+验证码生成例子
MainController.class.php
<?php
namespace AjaxYz\Controller;
use Think\Controller;
class MainController extends Controller
{
public function xianshi()
{
$n = D("yonghu");
$yz = $_POST["yz"];
if(empty($_POST))
{
$this->show();
}
else//如果$_POST不为空,走验证,验证是否成功,添加数据库
{ //造一个验证规则
$arr = array(
array('uid','require','输入的用户名不能为空',0),//非空验证require
array('pwd','require','输入的密码不能为空',0),//非空验证require
array('pwd','pwd1','输入的密码不一致',0,'confirm'),//相等验证:confirm(验证表单中的两个字段是否相同,定义的验证规则是一个字段名),意思是pwd1必须为字段
array('name','require','输入的姓名不能为空',0),
array('email','email','输入的邮箱格式不正确'),
array('shenfen','/^[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($n->validate($arr)->create())//$n->validate($arr),添加之前执行验证规则
{
$verify = new \Think\Verify();
//如果验证成功,返回true,失败false
if($verify->check($yz/*, $id*/))//$id为验证码的标识,在$Verify->entry();中没有定义标识,不写
{
$n->add();
$this->ajaxReturn('注册成功','eval');
}
else
{
$this->ajaxReturn('您输入的验证码不正确','eval');
}
}
else
{
$this->ajaxReturn($n->getError(),'eval');
}
}
}
public function yzm()//生成验证码
{
$v = new \Think\Verify();
$v->entry();
}
public function _empty()//空方法,防止报错
{
$this->display('Empty/empty');
}
}
xianshi.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>
<style type="text/css">
.a{ margin-bottom:5px}
#b{ text-align:center; margin-top:50px}
</style>
<body>
<div id="b">
<div class="a">用 户 名:<input type="text" id="uid" /></div>
<div class="a">密 码:<input type="text" id="pwd" /></div>
<div class="a">确认密码:<input type="text" id="pwd1" /></div>
<div class="a">姓 名:<input type="text" id="name" /></div>
<div class="a">邮 箱:<input type="text" id="email" /></div>
<div class="a">身 份 证:<input type="text" id="shenfen" /></div>
<div class="a">年 龄:<input type="text" id="age" /></div>
<div class="a">验 证 码:<input type="text" id="yz" /></div>
<div class="a"><img id="img" src="__CONTROLLER__/yzm" /></div>
<div class="a" style="font-size:8px; color:#00F">点击图片更换验证码</div>
<div class="a"><input type="button" value="注册" id="btn" /></div>
</div>
<script type="text/javascript">
$(document).ready(function(e) {
//点击图片,定义src,再走一遍方法,BUG是个别浏览器不兼容,可生成随机数,当参数传值
$("#img").click(function(){
var a = Math.ceil(Math.random()*100);//生成随机数,Math.random()是生成随机数,Math.ceil()是向上取整,Math.ceil(Math.random())都是取整到1,可以*100来生成1-100的随机整数
$("#img").attr("src","__CONTROLLER__/yzm/suijishu/"+a+"");//个别浏览器如果地址一样,验证码不加载,可以后带一个参数(生成随机数),suijishu可以随意定义,传到后台不用
})
//点击提交POST数据
$("#btn").click(function(){
var uid = $("#uid").val();
var pwd = $("#pwd").val();
var pwd1 = $("#pwd1").val();
var name = $("#name").val();
var shenfen = $("#shenfen").val();
var email = $("#email").val();
var age = $("#age").val();
var yz = $("#yz").val();
$.ajax({
url:"__ACTION__",
data:{uid:uid,pwd:pwd,pwd1:pwd1,name:name,email:email,shenfen:shenfen,age:age,yz:yz},
type:"POST",
dataType:"TEXT",
success: function(data)
{
if(data != "注册成功")
{
alert(data);//输出错误提示信息
}
else//注册成功,跳转页面
{
window.location.href="__CONTROLLER__/_empty";//window.location.reload();ajax刷新当前页面
}
}
});
})
});
</script>
</body>
</html>
________
ajax+表单验证+验证码生成例子的更多相关文章
- jquery php ajax 表单验证
本实例用到 JQuery 类库本身的函数和功能,所有表单信息利用 PHPMailer 类库邮件的形式发送. .创建一个表单 html 页面 表单部分 html 代码 以下为引用内容: &l ...
- validate+jquery+ajax表单验证
1.案例 1.1 Html form表单内容 <form class="cForm" id="cForm" method="post" ...
- Ajax 表单验证 实现代码
兼容: opera 9.6 + chrome 2.0 + FF 3 + IE 6 效果:一边输入一边实现验证 image 环境:ruby 1.8.6 + rails 2.1.0 + windows 核 ...
- 转:MVC遇上bootstrap后的ajax表单验证
使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jqueyr.validate的话只有使用他自己的样式了,而且有模型在使用模型验证更方便点.怎么解决呢? 当 ...
- jQuery Validatede 结合Ajax 表单验证提交
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- boostrap ajax表单验证提交
=============================================================================== 1. 1 <link href=& ...
- MVC遇上bootstrap后的ajax表单模型验证
MVC遇上bootstrap后的ajax表单验证 使用bootstrap后他由他自带的样式has-error,想要使用它就会比较麻烦,往常使用jqueyr.validate的话只有使用他自己的样式了, ...
- jquery validate表单验证插件-推荐
1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家. 1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素 3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...
- jquery validate表单验证插件
1 表单验证的准备工作 在开启长篇大论之前,首先将表单验证的效果展示给大家. 1.点击表单项,显示帮助提示 2.鼠标离开表单项时,开始校验元素 3.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...
随机推荐
- Java实现JDBC连接数据库实例
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sq ...
- C#与Java多态方面的语法差异
C++.C#.Java,无奈三种语言让我多次混淆,多次搞清楚,不写个Demo我想还是会忘记的. 就好像是一个满水的杯子,倒掉一点,才能装下更多. 有时候博客就是一个倒水的地方,可以让我们清空自己,然后 ...
- showModalDialog打开页面有缓存,不走action
当你设置的弹出网页固定时,ie很可能到临时文件区,下载上次产生的该页面,而没有重新加载, 对于动态加载的页面来说,这样往往产生误会,如没有及时更新数据,也就更不利于开发者测试.所以,你可以采用如 ...
- Git私钥openssh格式转ppk
已有my.openssh私钥文件,以及Key passphrase:4c264a73544ee7f3bc6ba6f8a416b6efec9d7cc6e71b745c479159cc7ee0a8cb 若 ...
- Revolving Digits(hdu 4333)
题意:就是给你一个数字,然后把最后一个数字放到最前面去,经过几次变换后又回到原数字,问在这些数字中,比原数字小的,相等的,大的分别有多少个.比如341-->134-->413-->3 ...
- PHP实现四种基本排序算法
前提:分别用冒泡排序法,快速排序法,选择排序法,插入排序法将下面数组中的值按照从小到大的顺序进行排序. $arr(1,43,54,62,21,66,32,78,36,76,39); 1. 冒泡排序 思 ...
- 分布式追踪系统dapper
http://www.cnblogs.com/LBSer/p/3390852.html 最近单位需要做自己的分布式监控系统,因此看了一些资料,其中就有google的分布式追踪系统dapper的论文:h ...
- 常用MIME类型(Flv,Mp4的mime类型设置)(转载)
转载地址:http://www.cuplayer.com/player/Help/2011/0625/83.html 也许你会在纳闷,为什么我上传了flv或MP4文件到服务器,可输入正确地址通过htt ...
- shell不能执行su 后的脚本
问题:在shell脚本中执行“su – 用户名”后,脚本终止执行,并且切换到su 中指定用户名的交互式界面 现象:我在root中执行一个脚本,但是其中的一些命令或脚本必须用oracle用户来执行., ...
- Power BI for Office 365(八)共享查询
在Power Query中,你不但可以搜索线上的数据,也可以把自己的数据发布到线上供其它人检索.Power Query通过Power BI站点提供了这种内置的分享功能.在Excel中,Anna打开了她 ...