我已经在这里更新了我的问题。 pjax现在正在工作并重新加载特定的容器,但模式并没有关闭。我不知道问题是什么。有人能帮助我吗?
modal.php
$this->registerJs(
'jQuery(document).ready(function($){
$(document).ready(function () {
$("body").on("beforeSubmit", "form#form-person", function () {
var form = $(this);
if (form.find(".has-error").length)
{
return false;
}
$.ajax({
url : form.attr("action"),
type : "post",
data : form.serialize(),
success: function (response)
{
$("#modalOfficials").modal("toggle");
$.pjax.reload({container:"#for_from"}); //for pjax update
},
error : function ()
{
console.log("internal server error");
}
});
return false;
});
});
});');
?>
<div class="name-form">
<?php yii\widgets\Pjax::begin(['id' => 'sign-up']) ?>
<?php $form = ActiveForm::begin(['id' => 'form-person', 'options' => ['data-pjax' => true]]); ?>
<?= $form->field($model, 'position')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'fname')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'mname')->textInput(['maxlength' => true]) ?>
<?= $form->field($model, 'lname')->textInput(['maxlength' => true]) ?>
<div class="form-group">
<?= Html::submitButton($model->isNewRecord ? 'Add' : 'Update', ['class' => $model->isNewRecord ? 'btn btn-success' : 'btn btn-primary', 'style' => 'width: 100%; padding: 10px 30px;']) ?>
</div>
<?php ActiveForm::end(); ?>
<?php yii\widgets\Pjax::end() ?>
答案 0 :(得分:0)
我已经解决了自己的问题!代码是正确的。代码没有问题。但是,由于两个jquery库的冲突,它不起作用。有人可以给我一个如何解决它的想法吗?
答案 1 :(得分:0)
如果要使用jquery运行ajax jquery,则不需要pjax。只需在成功时更新select元素即可。
success: function (response)
{
var myOptions = response.data
$.each(myOptions, function(val, text) {
$('#select').append(
$('<option></option>').val(val).html(text)
);
});
}