Yii2 ajax保存后更新表单

Yii2 ajax保存后更新表单,yii2,Yii2,我希望在ajax保存后更新表单数据。原因如果项目是新的(id-空),则每次都会尝试创建新项目。还有后端生成的字段,这些字段在保存后显示 <?php $form = ActiveForm::begin([ 'method' => 'post', 'action' => ['category/save', 'id' => $category ? $category->id : ''], 'enableClientValid

我希望在ajax保存后更新表单数据。原因如果项目是新的(id-空),则每次都会尝试创建新项目。还有后端生成的字段,这些字段在保存后显示

<?php $form = ActiveForm::begin([
        'method' => 'post',
        'action' => ['category/save', 'id' => $category ? $category->id : ''],
        'enableClientValidation' => true,
//        'enableAjaxValidation' => false,
        'validateOnChange' => false,
        'validateOnBlur' => false,
        'validateOnSubmit' => true,
        'options' => [
            'id' => 'customer-update',
            'class' => 'ajax-submit',
        ],
        'fieldConfig' => [
            'template' => '<div class="row-content-col1">{label}</div><div class="row-content-col2">{input}{error}</div>'
        ]
    ]); ?>
.......

<?php echo $form->field($category, 'url')->textInput(['class' => 'ip', 'readonly' => true]); ?>

......

<?php $form->end(); ?>

什么是ajax表单的有效响应?或者有其他方法来处理这一切吗?

Pjax对于您的挑战非常有用,只需将您的表单添加到Pjax小部件中即可。将表单操作添加到新路径(例如:站点/控制数据)。 在您的操作方法中,执行您想要的操作,但发送如下响应:

return $this->renderAjax('form path',$model);
这是你必须做的一般性的事情。 但也许您对jquery或pjax有问题,或者需要更多的数据,但所有问题都有答案


请参见

您希望表单提交数据,保存后,更改表单以更新该数据,我是否理解此问题?@ttrasn数据提交工作正常。我无法理解提交后如何将数据提交到表单中。因此应该出现“id”值(例如,您可以使用Pjax,我在回答中描述了这一点;)@ttrasn没有其他想法吗?您可以使用php创建html元素,并通过json响应发送到视图。然后将其插入表单父框,但这不是我的建议。
{"error":false,"message":"Category 'asdfzsdf sdf' saved","data":{"name":"asdfzsdf sdf","url":"asdfzsdf-sdf","project_id":1,"id":21}}
return $this->renderAjax('form path',$model);