Php 如何在yii2的模式窗口中使用pjax更新小部件

Php 如何在yii2的模式窗口中使用pjax更新小部件,php,ajax,yii2,pjax,active-form,Php,Ajax,Yii2,Pjax,Active Form,我在一个模态窗口中有两个ActiveForms,在提交第一个表单后,我需要更新第二个表单并保持模态状态 据我所知,pjax可以处理这个问题,但无法让它正常工作 在_form.php中,我有一个带有小部件的ActiveForm,应该更新它: //需要更新这个小部件吗 然后我有一个Ajax请求,如果创建了新的解决方案,它将返回成功: $.ajax({ url:form.attr('action'), 键入:“post”, 数据:form.serialize(), 成功:功能(数据){ if(d

我在一个模态窗口中有两个ActiveForms,在提交第一个表单后,我需要更新第二个表单并保持模态状态

据我所知,pjax可以处理这个问题,但无法让它正常工作

在_form.php中,我有一个带有小部件的ActiveForm,应该更新它:


//需要更新这个小部件吗
然后我有一个Ajax请求,如果创建了新的解决方案,它将返回成功:

$.ajax({
url:form.attr('action'),
键入:“post”,
数据:form.serialize(),
成功:功能(数据){
if(data&&data.result==1){
$.pjax.reload({container:'#solutionItems'});
}
},
错误:函数(XMLHttpRequest、textStatus、errorshown){
$(“#error”).html(“Kļūda!Neizdevās pievienot ierakstu.”).fadeIn('highlight','',2000,callbackError());
$(“#解决方案”).val(“”);
}
});
但是

$.pjax.reload({container:'#solutionItems'});
关闭模式。
如果我将返回值放在div中,那么ajax工作正常,模式不会关闭。

Managed without$.pjax,只是添加了这个

 $("#risks-solutions_order-sortable").append('<li data-id="'+data.id+'" data-key="'+data.id+'" draggable="true">'+data.solution+'</li>');
 $("ul[id$='sortable'").trigger('sortupdate');
 $('#risks-solutions_order-sortable').sortable( "refreshPositions" );
$(“#risks-solutions_order-sortable”).append(“
  • “+data.solution+”
  • ”); $(“ul[id$='sortable')。触发器('sortupdate'); $(“#风险-解决方案_订单-可排序”)。可排序(“刷新头寸”);

    在ajax中,一切正常!:)

    增加/禁用超时可能有助于解决此问题

    $.pjax.reload('solutionItems',{timeout:false});
    

    您可以在这里找到更多详细信息:

    您现在知道如何使用pjax吗?@Ruben不知道,但在我通过jquery管理pjax之后,我不会探索更多的pjax。