zoukankan      html  css  js  c++  java
  • Yii2 ActiveForm组件的ajax提交

    ActiveForm如何异步提交?

    1.首先在views层的ActiveForm中配置以下属性

    $form = ActiveForm::begin([
        'action' => Url::to(['post/save']),           //此处为请求地址 Url用法查看手册
        'enableAjaxValidation' => true,
            'validationUrl' => Url::to(['post/validate']),     //数据异步校验
    ]);

    2.配置好表单属性之后,在控制器中添加对应的方法

    validateUrl对应的方法

    //该方法是异步校验字段,输入框失去焦点之后自动会自动请求改地址
    public function actionValidate(){
        $model = new PostModel();
        if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {        
            Yii::$app->response->format = Response::FORMAT_JSON;        
            return ActiveForm::validate($model);
        }
    }

    action对应的方法

    //该方法是数据保存方法
    public function actionSave()
    {
        $model = new PostCatModel();
        if ($model->load(Yii::$app->request->post())) {
            Yii::$app->response->format = Response::FORMAT_JSON;
            return ['status' => $model->save()];
        }        
    }

    除此之外,还要写一段提交的js

    //此处点击按钮提交数据的jquery
    $('.btn').click(function () {
    $.ajax({
            url: "/post/save.html",
            type: "POST",
            dataType: "json",
            data: $('form').serialize(),
            success: function(Data) {
                if(Data.status)
                    alert('保存成功');
              else
                alert('保存失败')
            },
            error: function() {
                alert('网络错误!');
            }
        });
        return false;
    });

    注:actionSave中对应的命名空间要加上,否则会报错

    比如 Response 和 ActiveForm 

    use yiiwebResponse;
    use yiiootstrapActiveForm;

    上面就是ActiveForm对应的异步提交方法

  • 相关阅读:
    充满了艰难的造题之幼儿园测试【历史考试】
    【大型网站技术实践】初级篇:借助Nginx搭建反向代理服务器
    windows下nginx的安装使用及解决80端口被占用nginx不能启动的问题
    使用hMailServer搭建免费邮件服务器(亲测可用)
    $.ajax()方法详解
    详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
    $.ajax()调用.cs里的方法实现ajax操作示例
    Asp.Net URL重写的具体实现(通过URLRewriter.dll)
    数据图
    C#解析JSON字符串总结
  • 原文地址:https://www.cnblogs.com/llxpbbs/p/9891225.html
Copyright © 2011-2022 走看看