Php 下拉菜单依赖于yii框架中的多选下拉菜单

Php 下拉菜单依赖于yii框架中的多选下拉菜单,php,drop-down-menu,yii,Php,Drop Down Menu,Yii,我是Yii框架的新手,我不能用下拉菜单解决这个问题 在我的页面中,我有两个下拉列表,它们都是多选下拉列表。第二个取决于第一个下拉列表。比如说, 1-下拉菜单为水果、蔬菜、饮料 2-下拉列表取决于用户选择,如果用户选择水果和饮料,则应在一个下拉列表中显示苹果、葡萄、果汁、啤酒 如果用户仅选择一个选项,例如第一个下拉菜单中的蔬菜,第二个下拉菜单应显示洋葱、土豆等 这里是源代码: //---------- VIEW ------------ <div id="left">

我是Yii框架的新手,我不能用下拉菜单解决这个问题

在我的页面中,我有两个下拉列表,它们都是多选下拉列表。第二个取决于第一个下拉列表。比如说,

1-下拉菜单为水果、蔬菜、饮料

2-下拉列表取决于用户选择,如果用户选择水果和饮料,则应在一个下拉列表中显示苹果、葡萄、果汁、啤酒

如果用户仅选择一个选项,例如第一个下拉菜单中的蔬菜,第二个下拉菜单应显示洋葱、土豆等

这里是源代码:

//---------- VIEW ------------

    <div id="left">
                        <div class="btn-group">
                            <?php             
                                echo CHtml::dropDownList('group', '', CHtml::listData($group,'group','group'), array(
                                    'multiple'=>'multiple',
                                    'ajax'=>array(
                                        'type' => 'POST',
                                        'url' => CController::createUrl('site/change'),
                                        'update' => '#e5'
                                    ),
                                    'id' => 'e4',
                                    'style' => 'width:300px'
                                ));
                            ?>
                        </div>
                    </div>
                    <div id="right">
                        <div class="btn-group">
                            <?php
                                echo CHtml::dropDownList('subgroup','', array(), array(
                                    'multiple' => 'multiple',
                                    'id'=>'e5',
                                    'style' => 'width:300px'
                                ));
                            ?>
                        </div>
                    </div>


// ------------ CONTROLLER ------------


public function actionChange()
        {

            $groupName = $_POST['group'];        


            $dpCriteria = new CDbCriteria();
            $dpCriteria->select = 'subgroups';
            $dpCriteria->condition = 'group = '.$groupName;

            $data = Subgroups::model()->findAll($dpCriteria);

            $data = CHtml::listData($data,'subgroups','subgroups');
            foreach($data as $value=>$name)
            {
                echo CHtml::tag('option',
                           array('value'=>$value),CHtml::encode($name),true); 
            }
        }

您询问的方法是依赖下拉列表。YII框架提供了创建相关下拉列表的教程。更多细节和示例,请查看此项

编辑:

在代码中,您正在使用单个值“group=”检查groupname。$groupname;。但是$groupname是一个值数组。因此,您在mysql中使用了内爆$groupname数组的值

您的条件是:

$dpCriteria->condition='group in'。内爆,,$groupName


像这样试试。在你的ajax数组中

'update'=>'#'.CHtml::activeId($model,'attribute_to_update'),
'data'=>array('atribute'=>'js:this.value'),

我看过这篇文章,我可以做依赖下拉,但我不能做多选下拉,我的意思是第一个是多选,当你选择2,3或4个选项时,第二个应该显示依赖于第一个选择。我在上面写的。谢谢你的回答!根据您的评论更新了我的答案。