如何在yii2中发送ajax表单

如何在yii2中发送ajax表单,yii2,Yii2,我需要在我的yii2应用程序中从html表单发送数据。我需要使用ajax从这个表单发送数据,并从服务器获取响应以输出它。在YII1.0中,我使用了非常有用的助手ajaxSubmitButton,在yii2中,我找不到如何使用ajax从表单发送数据。你能告诉我怎么做吗?有关于它的文章吗 谢谢。Yii ActiveForm在其生命周期的许多阶段都支持JavaScript事件。您可以在提交前使用事件来实现您想要的目标。在JavaScript中: $(文档)。准备好了吗( $('#myform')。on

我需要在我的yii2应用程序中从html表单发送数据。我需要使用ajax从这个表单发送数据,并从服务器获取响应以输出它。在YII1.0中,我使用了非常有用的助手ajaxSubmitButton,在yii2中,我找不到如何使用ajax从表单发送数据。你能告诉我怎么做吗?有关于它的文章吗


谢谢。

Yii ActiveForm在其生命周期的许多阶段都支持JavaScript事件。您可以在提交前使用
事件来实现您想要的目标。在JavaScript中:

$(文档)。准备好了吗(
$('#myform')。on('beforesmit',函数(事件,jqXHR,设置){
变量形式=$(此);
if(form.find('.has error').length){
返回false;
}
$.ajax({
url:form.attr('action'),
键入:“post”,
数据:form.serialize(),
成功:功能(数据){
//做点什么。。。
}
});
返回false;
}),
);

请注意,您可以通过从事件回调返回
false
来停止表单的正常提交。

当服务器验证规则的提交失败时,重新加载表单

$form.on('beforeSubmit', function (event, jqXHR, settings) {

        if ($form.find('.has-error').length) {
            return false;
        }

        $.ajax({
            url: $form.attr('action'),
            type: 'post',
            data: $form.serialize(),
            success: function (datos, status, xhr) {
                var ct = xhr.getResponseHeader("content-type") || "";
                //fail server validation
                if (ct.indexOf('html') > -1) {
                    if ($(datos).find(".has-error").length)
                    {
                        modal.modal('show');
                        modal.find(".modal-body").html(datos);

                    }
                }
                //real success
                if (ct === "" || ct.indexOf('json') > -1) {
                    modal.modal('hide');

                }
            },
            error: function (datos) {
                alert(datos.responseText);
            },
            complete: function (datos) {
                console.log(datos);
            }
        });

        return false;
    })

涉及什么样的数据和输出?如果它们用于验证目的,您可以使用内置的ajax验证。@arogachev,不,我不需要任何ajax验证。我只需要将json数据发送到我的服务器并从中获取html响应。