私はモーダルポップアップを持っています。ユーザーがデータを送信した後、同じポップアップで結果を表示したいのですが。そのモーダルビューを再ロードするにはどうすればよいですか?ありがとう。Yii2でブートストラップモーダルポップアップをリロードする方法は?
これがポップアップ表示される:
<div class="site-popup">
<h1><?= Html::encode($this->title) ?></h1>
<div class="row">
<div class="col-lg-5">
<?php $form = ActiveForm::begin(['id' => 'popup-form']); ?>
<?= $form->field($model, 'pattern')->textArea(['rows' => 1]) ?>
<div class="form-group">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'popup-button']) ?>
</div>
<?php ActiveForm::end(); ?>
</div>
</div>
<?php
echo "<pre>";
print_r($model->data);
?>
これは、上記のモーダルポップアップビューの呼び出し図である。
<p>
<?= Html::button('Search', ['value' =>Url::to('index.php?r=site/mypopup'),'class' =>'btn btn-success', 'id'=>'modalButton']) ?>
</p>
<?php
Modal::begin([
'header'=> '<h4>Search</h4>',
'id' => 'modal',
'size' => 'modal-lg',
]);
echo "<div id='modalContent'></div>";
Modal::end();
?>
JSファイル:
$(function(){
//get the click of the search button
$('#modalButton').click(function(){
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
});
});
コントローラ:
public function actionPopup()
{
$model = new PopupForm();
if ($model->load(Yii::$app->request->post()) && $model->validate())
{
$model->insertPopup();
return $this->renderAjax('mypopup', ['model' => $model]);
} else {
return $this->renderAjax('mypopup', [
'model' => $model,
]);
}
}
submitの代わりにボタンを使用し、onclickのajaxを呼び出して、同じモーダルでビューを返します。 –
あなたはどういう意味ですか?「同じモーダルのビューを返す」。ありがとう@Rajesh Pradhan –
私は、保存するならばajaxを呼び出し、次にモーダルで応答を返します。 –