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
        });
    }