【发布时间】:2020-12-11 12:50:21
【问题描述】:
我在一个视图中渲染两个视图。
<?= $form->field($model, 't_type')->dropDownList([
'' => 'Please Select', 'Slab Based' => 'Slab Based',
'TOU Based' => 'TOU Based']) ?>
<div class="showSlab" id="slab" style="display: none">
<?php echo $this->render('_slabBased', [
'modelsTariffSlabs' => $modelsTariffSlabs,
]); ?>
</div>
<div class="showTou" id="tou" style="display: none">
<?php echo $this->render('_touBased', [
'modelsTouSlabs' => $modelsTouSlabs,
]); ?>
</div>
默认情况下,两个 div 都是隐藏的,但它们都在渲染。但我只想在选择“基于平板”或TOU Based
JS
$('#mdctariff-t_type').on('change', function () {
if (this.value === 'Slab Based') {
$("#slab").show();
$("#tou").hide();
} else if (this.value === 'TOU Based') {
$("#tou").show();
$("#slab").hide();
} else {
$("#slab").hide();
$("#tou").hide();
}
});
注意:渲染表单后我也保存了
更新 1
我尝试通过ajax渲染它
$url = Url::toRoute(['/mdctariff/_slabBased','modelsTariffSlabs'=>$modelsTariffSlabs]);
doGet('$url')
function doGet(url, params) {
params = params || {};
$.get(url, params, function(response) { // requesting url which in form
$('#slab').html(response); // getting response and pushing to element with id #response
});
}
参考:How to render partial using AJAX? Laravel 5.2
当我选择一个选项时,我无法查看表单。在我的Network 选项卡中,我收到错误Not Found (#404): Page not found.。生成的URL 是http://localhost/mdc/backend/web/mdctariff/_slabBased
在我的浏览器中粘贴此 URL 时,我遇到了同样的错误。我一定错过了一些我不知道的东西
如何仅在我选择一个选项时才呈现我的视图?
任何帮助将不胜感激。
【问题讨论】:
-
使用 AJAX 并动态加载。
-
所以你不想通过在正文中预加载表单来显示隐藏?
-
@MuhammadOmerAslam 是的,我只想在选择选项时显示表单
-
@Bizley 我已经尝试过,但仍然无法得到想要的结果。
-
我无法理解您的问题,您想在页面加载时隐藏所有内容吗?你在
routes\web.php中指定了你的ajax 路径吗?
标签: javascript php jquery ajax yii2