如何解决如何仅在yii2中选择后呈现视图
我在单个视图中呈现两个视图。
<?= $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时,出现了同样的错误。我一定想念我不知道的东西
如何才能使我的看法,只有当我选择一个选项?
任何帮助将不胜感激。
解决方法
在您的URL中
$url = Url::toRoute(['/mdctariff/_slabBased','modelsTariffSlabs'=>$modelsTariffSlabs]);
第一个参数应该是正确的现有路由。但是您是以目录的形式写的,即mdctafiff
文件夹,然后是_slabBased
文件。
这里您需要做的是,您需要在控制器中创建一个动作方法,以便您可以通过路由访问它。像MdctariffController
和partialAction
一样,然后在partialAction
方法的主体中,您需要调用_slabBased
视图文件。此外,您还可以将参考here用于Url :: toRoute()。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。