thinkadmin结合ajax与验证器进行表单验证

1.根据场景验证

2.在构造方法初始化验证类

3.错误验证返回的信息将对象属性取出进行提示,并return false;终止表单后边脚本定时器提交

控制器代码

 public function __construct()
    {
        parent::__construct();
        $this->validate = new SupplierValidate();
 
    }
    
public function audit_agree()
    {
        //获取登录的审核人id
        $audit_id=$_SESSION['fw']['admin_user']['id'];
        //获取登录的审核人姓名
        $audit_name=$_SESSION['fw']['admin_user']['username'];
        $postData = Request::param();
        //表单验证
        if (!$this->validate->scene('examine_quali')->check($postData)) {
            $this->error($this->validate->getError());
        }
        //处理post数据
       $res = $this->supplierLogic->update_examine($postData,$audit_id,$audit_name);
        $this->msg->add($audit_id,'您更新的供应商【'.$postData['supplier_name'].'】资质审,请查阅!','supplier/examine');
        return $res;
    }

验证类

<?php
/**
 * 供应商表必填字段验证
 */
namespace app\goods\validate;

use think\Validate;

class SupplierValidate extends Validate
{
    protected $rule = [
        'contacts_name|联系人'=>[
            'require'=>'require',
        ],
        'reg_address|注册地址'=>[
            'require'=>'require',
        ],
        'contacts_tel|联系电话'=>[
            'require'=>'require',
            'mobile'=>'mobile'
        ],
        'pro_range|生产范围'=>[
            'require'=>'require',
        ],
        'yet_pro|已生产品种'=>[
            'require'=>'require',
        ],
        'join_pro_cate|合作品种类别'=>[
            'require'=>'require',
        ],
        'join_pro_name|合作品种名称'=>[
            'require'=>'require',
        ],
        'is_pro_cert|是否获得生产许可证'=>[
            'require'=>'require',
        ],
        'pro_cert_name|生产许可证名称'=>[
            'require'=>'require',
        ],
        'pro_cert_no|生产许可证编号'=>[
            'require'=>'require',
        ],
        'pro_cert_date|生产许可证效期'=>[
            'require'=>'require',
        ],
    ];


    protected $message  =   [
        'contacts_name.require'  =>'产品名称不能为空'
    ];
    //验证场景,根据场景需要加入上边规则中需要验证的字段
    protected $scene = [
        'plan_add'   =>  ['contacts_name','reg_address','contacts_tel','is_pro_cert','yet_pro','join_pro_cate','join_pro_name'],

        'examine_quali' => ['pro_range','yet_pro','join_pro_cate','join_pro_name','pro_cert_name','pro_cert_no','pro_cert_date']
    ];
}

js脚本代码


<script>
    window.form.render();
    /*  require(['ckeditor', 'angular'], function () {
     window.createEditor('[name="penalize_reason"]', {height: 180});
     });*/

    laydate.render({
        elem: '#datetime'
    });

    function agree()
    {
        var comment = $('#contents').val();
        if($.trim(comment)=='')
        {
            layer.msg('审查意见不能为空');
            return false;
        }
        audit(1,comment);
    }

    function disagree()
    {
        var comment = $('#contents').val();

        if($.trim(comment)=='')
        {
            layer.msg('审查意见不能为空');
            return false;
        }
//        layer.confirm('您确定要拒绝么?',{btn: ['确定', '取消'],title:"提示"}, function(){
            audit(2,comment);
//        });
    }

    //提交审批
    function audit($agree,$comment)
    {
        var url = "{:url('goods/supplier/audit_agree')}";
        $.post(url,$.param({is_result:$agree})+'&'+jQuery('#examine_quali').serialize(),function(result){
//            结合验证器返回提示表单验证信息
            if(result['code']==0){
                layer.msg(result['info']);
                return false;
            }
            if(result){
                layer.msg('审查意见提交成功');
                setTimeout(function(){
                    window.history.back();
                },3000);//1秒后可点击
                //返回上一点击

            }
            console.log(result);
        });
    }
</script>
发布了161 篇原创文章 · 获赞 0 · 访问量 7399

猜你喜欢

转载自blog.csdn.net/weixin_39218464/article/details/105288249