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.鼠标离开后的正确.错误提示及鼠标移入时的帮 ...
随机推荐
- Zero-Copy&sendfile浅析
一.典型IO调用的问题一个典型的web服务器传送静态文件(如CSS,JS,图片等)的过程如下:read(file, tmp_buf, len);write(socket, tmp_buf, len); ...
- Java批量文件打包下载
经常遇到选择多个文件进行批量下载的情况,可以先将选择的所有的文件生成一个zip文件,然后再下载,该zip文件,即可实现批量下载,但是在打包过程中,常常也会出现下载过来的zip文件中里面有乱码的文件名, ...
- 如何在WIN2008或WIN2012 64位系统安装32位SQL2000
如何在WIN2008或WIN2012 64位系统安装32位SQL2000 在日常服务器,云服务器或VPS中,因尔特网络工程师遇到部分使用了WIN2008 或WN2012 64位系统的用户需要安装SQL ...
- 51nod1089(最长回文子串之manacher算法)
题目链接: https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1089 题意:中文题诶~ 思路: 我前面做的那道回文子串的题 ...
- kettle系列-1.kettle源码获取与运行
第一次写博客,心里有点小激动,肯定有很多需要改进的地方,望海涵. kettle算是我相对较为深入研究过的开源软件了,也是我最喜欢的开源软件之一,它可以完成工作中很多体力劳动,在ETL数据抽取方面得到了 ...
- sql server 语句使用规范
Sql语句使用规范 规范内容以及注意事项: 1.查询时候使用top 10 /top 100 和where 字句控制每次执行SQL 返回的结果集合,在满足业务需求的同时返回最小的结果. 2.使用数据投影 ...
- 代理模式/proxy模式/结构型模式
代理模式proxy 定义 为其他对象提供一种代理,并以控制对这个对象的访问.最简单的理解,买东西都是要去商店的,不会去工厂. java实现三要素 proxy(代理)+subject(接口)+realS ...
- [leetcode] 题型整理之字符串处理
71. Simplify Path Given an absolute path for a file (Unix-style), simplify it. For example,path = &q ...
- MIT 6.828 JOS学习笔记3. Exercise 1.2
这篇博文是对Lab 1中的Exercise 2的解答~ Lab 1 Exercise 2: 使用GDB的'si'命令,去追踪ROM BIOS几条指令,并且试图去猜测,它是在做什么.但是不需要把每个细节 ...
- Linux环境下Nginx配置安装PHP
下边的安装配置方法,我试了一晚上没有成功,可能因为我的系统环境比较复杂,所以建议: 先安装PHP.使用yum命令安装,在安装配置MySQL,具体做法看博客中其他文章,至于Nginx服务器可以安装完这两 ...