Ho due ActiveForm in una finestra modale e dopo aver inviato il primo modulo, devo aggiornare il secondo e rimanere in modal.Come aggiornare il widget con pjax nella finestra modale in yii2
quanto ho capito pjax in grado di gestire questo, ma non riesco a farlo funzionare correttamente.
In _form.php ho ActiveForm con widget di wich dovrebbe essere aggiornato:
<?php $form = ActiveForm::begin([
'id'=>'form',
'enableAjaxValidation'=>true,
]); ?>
<?= Html::activeHiddenInput($riskModel, 'id', ['value' => $riskModel->id]) ?>
<?php Pjax::begin([
'id' => 'solutionItems',
]) ?>
//need to update this widget
<?= $form->field($riskModel, 'solutions_order')->widget(SortableInput::classname(), [
'items' => $riskModel->getSolutionList(),
'hideInput' => false,
'options' => ['class'=>'form-control', 'readonly'=>false]
]); ?>
<?php Pjax::end() ?>
<div class="form-group">
<?= Html::submitButton($riskModel->isNewRecord ? 'Create' : 'Update', ['class' => $riskModel->isNewRecord ? 'btn btn-success' : 'btn btn-primary', 'onclick' => 'return isConnected()']) ?>
</div>
<?php ActiveForm::end(); ?>
E poi ho Ajax torna richiesta wich successo, se si crea nuova soluzione:
$.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("");
}
});
Ma
chiude modale :( Se inserisco il valore restituito in div, quindi ajax funziona correttamente e il modale non si sta chiudendo.
sai come farlo con pjax da ora? – Ruben
@Ruben no, ma non esploro più pjax dopo che sono riuscito a gestire jquery. –
@Ruben prova la mia risposta: http://stackoverflow.com/a/39170359/3793592 – IStranger