Yii2 整页加载到模态 div
Yii2 Full page load to modal div
我尝试通过模态 boostrap 加载 ActiveForm
而是形成模态加载整页
图片中是
example
布局:main.php
...
yii\bootstrap\Modal::begin([
'header' => '<span id="modalHeaderTitle"></span>',
'headerOptions' => ['id' => 'modalHeader'],
'id' => 'modal',
'size' => 'modal-lg',
'closeButton' =>['tag'=>'close', 'label'=> 'Zamknij'],
'clientOptions' => ['backdrop' => 1, 'keyboard' =>True]
]);
echo "<div id='modalContent'></div>";
yii\bootstrap\Modal::end();
?>
...
查看:_form.php
<div class="category-form">
Lorem Ipsum
</div>
模式启动按钮:
<?= Html::button('Nowa kategoria', ['value' => Url::to(['category/create']), 'title' => 'Nowa kategoria', 'class' => 'showModalButton btn btn-success']); ?>
modal.js
$(function(){
$(document).on('click', '.showModalButton', function(){
if ($('#modal').data('bs.modal').isShown) {
$('#modal').find('#modalContent')
.load($(this).attr('value'));
document.getElementById('modalHeaderTitle').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
} else {
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
document.getElementById('modalHeaderTitle').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
}
});
});
有错误请帮忙查找
您必须告诉控制器中呈现页面的操作不要使用完整页面布局。你应该能够通过设置来做到这一点。
$this->layout = false;
在控制器中所以它不使用任何布局。或者您可以设置特定的布局:
$this->layout = 'modalLayout.php';
并在 layouts
文件夹中创建一个名为 modalLayout.php
的文件,其中仅包含您想要作为模式布局的内容。
在你得到你想要的内容的模式后,在这里添加一个新问题并询问为什么你的 ActiveForm
不能正常工作(P.S.: 因为它可能没有被正确实例化) .
我尝试通过模态 boostrap 加载 ActiveForm 而是形成模态加载整页 图片中是 example
布局:main.php
...
yii\bootstrap\Modal::begin([
'header' => '<span id="modalHeaderTitle"></span>',
'headerOptions' => ['id' => 'modalHeader'],
'id' => 'modal',
'size' => 'modal-lg',
'closeButton' =>['tag'=>'close', 'label'=> 'Zamknij'],
'clientOptions' => ['backdrop' => 1, 'keyboard' =>True]
]);
echo "<div id='modalContent'></div>";
yii\bootstrap\Modal::end();
?>
...
查看:_form.php
<div class="category-form">
Lorem Ipsum
</div>
模式启动按钮:
<?= Html::button('Nowa kategoria', ['value' => Url::to(['category/create']), 'title' => 'Nowa kategoria', 'class' => 'showModalButton btn btn-success']); ?>
modal.js
$(function(){
$(document).on('click', '.showModalButton', function(){
if ($('#modal').data('bs.modal').isShown) {
$('#modal').find('#modalContent')
.load($(this).attr('value'));
document.getElementById('modalHeaderTitle').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
} else {
$('#modal').modal('show')
.find('#modalContent')
.load($(this).attr('value'));
document.getElementById('modalHeaderTitle').innerHTML = '<h4>' + $(this).attr('title') + '</h4>';
}
});
});
有错误请帮忙查找
您必须告诉控制器中呈现页面的操作不要使用完整页面布局。你应该能够通过设置来做到这一点。
$this->layout = false;
在控制器中所以它不使用任何布局。或者您可以设置特定的布局:
$this->layout = 'modalLayout.php';
并在 layouts
文件夹中创建一个名为 modalLayout.php
的文件,其中仅包含您想要作为模式布局的内容。
在你得到你想要的内容的模式后,在这里添加一个新问题并询问为什么你的 ActiveForm
不能正常工作(P.S.: 因为它可能没有被正确实例化) .