Javascript 如何仅在yii2中选择后渲染视图
我在一个视图中渲染两个视图Javascript 如何仅在yii2中选择后渲染视图,javascript,php,jquery,ajax,yii2,Javascript,Php,Jquery,Ajax,Yii2,我在一个视图中渲染两个视图 <?= $form->field($model, 't_type')->dropDownList([ '' => 'Please Select', 'Slab Based' => 'Slab Based', 'TOU Based' => 'TOU Based']) ?> <div class="showSlab" id="slab" style="dis
<?= $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>
注意:呈现表单后,我也会保存它
更新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
});
}
参考资料:
当我选择一个选项时,我无法查看表单。在我的网络
选项卡中,我发现错误未找到(#404):未找到页面。
。生成的URL
是http://localhost/mdc/backend/web/mdctariff/_slabBased
在我的浏览器上粘贴此URL时,我遇到了相同的错误。我一定错过了一些我不知道的东西
如何仅在选择选项时渲染视图
任何帮助都将不胜感激。在您的URL中
$url=url::toRoute(['/mdctariff/_slabBased','modelstariffsplates'=>$modelstariffsplates])代码>
第一个论点应该是正确的现有路线。但是您已经以目录的形式编写了它,即mdctafif
文件夹,然后是\u slabBased
文件
这里需要做的是,您需要在控制器中创建一个操作方法,以便可以通过路由访问它。像MdctariffController
和partialAction
一样,然后在partialAction
方法的主体中,您需要调用\u slabBased
视图文件。此外,您还可以引用Url::toRoute()。使用AJAX并动态加载它。因此,您不想通过在正文中预加载表单来显示隐藏?@MuhammadOmerAslam是的,我只想在启用选项时显示表单selected@Bizley我已经试过了,但仍然没有达到预期的效果。我无法理解你的问题,是否要隐藏页面加载中的所有内容?您是否在routes\web.php
中指定了ajax路径?因此,下拉选择我必须通过ajax
调用特定的控制器?是的,Url::toRoute()
的第一个参数应该是controllerName/actionName
。
$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
});
}