Cómo actualizar el widget con pjax en la ventana modal en yii2

Tengo dos ActiveForms en una ventana modal y luego de enviar el primer formulario, necesito actualizar el segundo y mantenerme en modal.

modal

Como yo entiendo, pjax puede manejar eso, pero no puede hacerlo funcionar correctamente.

En _form.php tengo ActiveForm con el widget que debe actualizarse:

'form', 'enableAjaxValidation'=>true, ]); ?>  $riskModel->id]) ?>  'solutionItems', ]) ?> //need to update this widget field($riskModel, 'solutions_order')->widget(SortableInput::classname(), [ 'items' => $riskModel->getSolutionList(), 'hideInput' => false, 'options' => ['class'=>'form-control', 'readonly'=>false] ]); ?>  
isNewRecord ? 'Create' : 'Update', ['class' => $riskModel->isNewRecord ? 'btn btn-success' : 'btn btn-primary', 'onclick' => 'return isConnected()']) ?>

Y luego tengo la solicitud de Ajax que devuelve el éxito si se crea una nueva solución:

  $.ajax({ url: form.attr('action'), type: 'post', data: form.serialize(), success: function (data) { if (data && data.result == 1) { $.pjax.reload({container:'#solutionItems'}); } }, error: function (XMLHttpRequest, textStatus, errorThrown) { $("#error").html("Kļūda! Neizdevās pievienot ierakstu.").fadeIn('highlight','', 2000, callbackError()); $("#solutions-solution").val(""); } }); 

Pero

  $.pjax.reload({container:'#solutionItems'}); 

cierra modal 🙁 Si pongo el valor devuelto en div, entonces ajax funciona correctamente y modal no se cierra.

Administrado sin $ .pjax, acaba de agregar esto

  $("#risks-solutions_order-sortable").append('
  • '+data.solution+'
  • '); $("ul[id$='sortable'").trigger('sortupdate'); $('#risks-solutions_order-sortable').sortable( "refreshPositions" );

    en el éxito de Ajax y todo está bien! 🙂

    Tal vez boost / desactivar el tiempo de espera puede ayudar a resolver este problema.

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

    Más detalles que puedes encontrar aquí: yii2 cómo usar pjax cuando el hipervínculo no está en pjax

    Intereting Posts