zoukankan      html  css  js  c++  java
  • Thinkphp框架 表单自动验证登录注册 ajax自动验证登录注册

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

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

     

    <?php
    namespace AdminModel;
    use ThinkModel;
    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}((0d)|(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 BiaodanController;
    use ThinkController;
    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}((0d)|(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 AdminController;
    use ThinkController;
    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}((0d)|(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>

     

  • 相关阅读:
    Taglib笔记摘自http://tech.acnow.net/Html/Program/Java/200204/10/092611588.shtml
    Subversion安装手记
    java 数组排序
    JAVA 反编译
    开发EJB
    HTML 4.0 语 法 教 学 转载http://chinese.allproducts.com.tw/GB/html/#t1
    javaCollectionslist
    Ruby on Rack #1 与Rack的第一次亲密接触
    Ubuntu 安装 ruby on rails [转]来源:Ubuntu社区 作者:承古韵
    收集整理的对#!bin/sh的认识
  • 原文地址:https://www.cnblogs.com/zc290987034/p/6224198.html
Copyright © 2011-2022 走看看