zoukankan      html  css  js  c++  java
  • ThinkPHP表单验证

    表单验证

    静态方式  

    首先需要建一个相应表的数据模型 如infomodel.class .php  在模型中 建成员变量  再建数组 在数组中添加验证规则  需要通过$_validate属性定义验证规则

    格式为  array(

    array(验证字段1,验证规则,错误提示,[验证条件,附加规则,验证时间]),

    array(验证字段2,验证规则,错误提示,[验证条件,附加规则,验证时间]),

    ......);

    <?php
    namespace HomeModel;
    use ThinkModel;
    class InfoModel extends Model
    {
        protected $_validate=array(
            //array("Code","require","代号不能为空",0,"regex",3),
            //array("Name","","姓名不能重复",0,"unique",3),
            //array("QueRen","Sex","两次输入内容不一致",0,"confirm",3),
            //array("QueRen","123","输入内容不正确",0,"equal",3),
            //array("QueRen","18,50","输入年龄要在18-50之间",0,"between",3),
            //array("QueRen","email","邮箱格式不正确",0,"regex",3),
        );
    }
    

      

    自动收集表单
    if (!$m->create())
    {
    echo $m->getError();
    }
    else
    {
    echo "验证通过";
    /* $bs = $m->add();
    if ($bs)
    {
    $this->success("添加成功", "Test");
    }
    else
    {
    $this->error("添加失败");
    }*/
    }
    

      

    动态方式

    使用模型类的validate方法动态创建自动验证规则。

    自动在收集表单的时候验证   字符串会被当做0

    //动态验证
                $rules=array(
                    array("Code","require","代号不能为空",0,"regex",3),
                );
                if (!$m->validate($rules)->create())
                {
                    echo $m->getError();
                }
                else
                {
                    echo "验证通过";
                   /* $bs = $m->add();
                    if ($bs)
                    {
                        $this->success("添加成功", "Test");
                    }
                    else
                    {
                        $this->error("添加失败");
                    }*/
                }
    

      利用ajax实时验证

      需注意三点  jQuery引入    URL      返回

    1.jQuery引入    

    <load href="__PUBLIC__/JS/jquery-1.11.2.min.js" />
    <js href="/Public/Js/Common.js" />
    <css href="/Public/Css/common.css" />
    2.URL书写
    __CONTROLLER__/ChuLi  后边为方法名

    3.ajax的返回    $this->ajaxReturn($name,"eval");  有xml json eval(字符串)  默认为json

    ajax根据输入代号查看姓名

    <input id="code" type="text" name="code">
    <input id="btn" type="button" value="查看姓名">
    </body>
    <script type="text/javascript">
        $(document).ready(function (e) {
            $("#btn").click(function () {
                var code=$("#code").val();
                $.ajax({
                    url:"__CONTROLLER__/ChuLi",
                    data:{code:code},
                    type:"POSt",
                    dataType:"TEXT",
                    success:function (data) {
                        alert(data);
                    }
                });
            })
        })
    </script>
    

      

    function ChuLi()
        {
            $code=$_POST["code"];
            $m=D("info");
            $attr=$m->find($code);
            $name=$attr["name"];
            $this->ajaxReturn($name,"eval");
        }
    

      ajax实现实时判断

    <div>
            代号:<input id="dh" type="text" name="Code" />
            <span id="dhyz"></span>
     </div>
    <script type="text/javascript">
        $(document).ready(function (e) {
        $("#dh").blur(function () {
                var code=$(this).val();
                $.ajax({
                    url:"__CONTROLLER__/YanZheng",
                    data:{Code:code},//注意此时额提交根post提交一样 需注意是否与列名一样
                    type:"POSt",
                    dataType:"TEXT",
                    success:function (data) {
                        if(data.trim()=="OK")
                        {
                            $("#dhyz").html("验证通过");
                            $("#dhyz").css("color","green");
                        }
                        else
                        {
                            $("#dhyz").html(data);
                            $("#dhyz").css("color","red");
                        }
                    }
                });
            })
        })
    </script>
    

      

    function YanZheng()
        {
            $m=D("info");
            $str="";
            $rules=array(
                array("Code","require","代号不能为空",0,"regex",3),
            );
            if (!$m->validate($rules)->create())
            {
                $str=$m->getError();
            }
            else
            {
                $str="OK";
            }
            $this->ajaxReturn($str,"eval");
        }
    

      

  • 相关阅读:
    Objective-C中 Self和 Super详解
    OC类方法和实例方法中的self区别
    Objective-C----MRC内存管理 、 自动释放池 、 面向对象三大特性及封装 、 继承 、 组合与聚合
    Objective-C对象初始化 、 实例方法和参数 、 类方法 、 工厂方法 、 单例模式
    Objective-C语言介绍 、 Objc与C语言 、 面向对象编程 、 类和对象 、 属性和方法 、 属性和实例变量
    联合与枚举 、 高级指针 、 C语言标准库(一)
    C语言--- 字符串数组 、 预处理器和预处理指令 、 多文件编程 、 结构体
    C语言----变量及作用域 、 指针 、 指针和数组 、 进程空间 、 字符串
    iOS开发环境C语言基础 数组 函数
    ios开发环境 分支语句 、 循环结构(for) 、 循环结构
  • 原文地址:https://www.cnblogs.com/hamilton/p/5727475.html
Copyright © 2011-2022 走看看