如何创建依赖于yii2中另一个下拉列表的下拉列表?

时间:2016-04-08 13:25:32

标签: yii2 yii2-advanced-app

我有两个api's: 1:回归所有行业, 2:返回所有行业类别(基于行业ID)。

我需要两个下拉列表,一个依赖于其他下拉列表。在选择行业时,第二次下拉列表应仅显示相关类别。

提前致谢。

4 个答案:

答案 0 :(得分:0)

您可以使用this扩展程序。您可以在其指南页面上找到插件的说明。

答案 1 :(得分:0)

我明白了。我只是使用ajax从一个下拉列表中发布值,并将数据发送到一个返回数据的操作,我只是将这些值放到我的另一个下拉列表中。 :)

答案 2 :(得分:0)

_form.php这个

  <?php 
    use yii\helpers\Html;
    use yii\widgets\ActiveForm;
    use yii\helpers\ArrayHelper;
    use app\models\Category;
    ?>

    <?php $form = ActiveForm::begin(); ?>

     $model = Category::find()->select('id,name')->orderBy('name asc')->all();
     $listData = ArrayHelper::map($model, 'id', 'name');
     <?= $form->field($model, 'industryId')->dropDownList($listData, 
                                                     ['prompt'=>'Select Category',
                                        'onchange'=>'
                                            $.get( "'.Url::toRoute('/category/subcats').'", { id: $(this).val() } )
                                                .done(function( data ) {
                                                    $( "#'.Html::getInputId($model, 'sub_category').'" ).html( data );
                                                }
                                            );
                                        ','class' => 'form-control'    
                                    ]
                            ); ?>
        <?= $form->field($model, 'sub_category')
                        ->dropDownList(

                            ['prompt'=>'Select sub cat','class' => 'form-control']);
                    ?> 

 ----

答案 3 :(得分:0)

<?= $form->field($model, 'industryId')->dropDownList($industry, 
                                             ['prompt'=>'Select Industry',
                                'onchange'=>'
                                    $.get( "'.Url::toRoute('/site/category').'", { id: $(this).val() } )
                                        .done(function( data ) {
                                            $( "#'.Html::getInputId($model, 'industryName').'" ).html( data );
                                        }
                                    );
                                ','class' => 'form-control'    
                            ]
                    ); ?>
<?= $form->field($model, 'industryName')
                ->dropDownList(

                    ['prompt'=>'Select category','class' => 'form-control']);
            ?>