如何使用 select2 小部件 yii 制作依赖下拉列表

Posted

技术标签:

【中文标题】如何使用 select2 小部件 yii 制作依赖下拉列表【英文标题】:How to make dependent dropdown using select2 widget yii 【发布时间】:2016-01-26 16:58:24 【问题描述】:

我想使用 select2 创建一个依赖下拉列表,但我无法更改下一个 dropdown($kabupaten) 的数据,这是我的代码:

<?php $this->widget('ext.select2.ESelect2', array(
'model' => $model,
'attribute' => 'provinsi',
'data' => $provinsi,
'htmlOptions' => array(
    'style' => 'width:440px',
    'prompt' => '-- Pilih Provinsi --',
    'ajax' => array(
        'type' => 'POST',
        'url' => CController::createUrl('Kabupaten/SelectKabupaten'),
        'class' => 'span5',
        'update' => '#' . CHtml::activeId($model, 'kabupaten'), 
    )),));
$this->widget('ext.select2.ESelect2', array(
  'model' => $model,
  'attribute' => 'kabupaten',
  'data' => $kabupaten,
  'htmlOptions' => array(
    'style' => 'width:440px',
    'prompt' => '-- Pilih Kabupaten --',
),));?>

这是我的控制器:

public function actionSelectKabupaten() 
    $id_kabupaten = $_POST['DataDiriAnak']['provinsi'];
    $kabupaten = CHtml::listData(Kabupaten::model()->findByAttributes(array('IDProvinsi'=>$id_kabupaten)), 'Nama', 'Nama');
   

我不知道如何将 $kabupaten 的值发送到我最后一个 select2 下拉列表

【问题讨论】:

请使用您尝试过的代码编辑您的问题。 对不起,我已经编辑了我的问题。 您可以在第一个下拉菜单中使用onChange 事件 能否给我代码示例,谢谢之前 【参考方案1】:

您可以通过编码CHtml::tag() 中的数据,在您的视图中发送$kabupaten 的值,如下所示:

public function actionSelectKabupaten() 
    $id_kabupaten = $_POST['DataDiriAnak']['provinsi'];
    $kabupaten = CHtml::listData(Kabupaten::model()->findByAttributes(array('IDProvinsi'=>$id_kabupaten)), 'Nama', 'Nama');
        foreach($kabupaten as $value => $name) 
                echo CHtml::tag('option', array('value' => $value), CHtml::encode($name), true);
        
 

如果有任何进一步的查询,请告诉我。

【讨论】:

感谢您的解决方案,但仍然无法正常工作。第二个 select2 下拉列表的数据仍然为空

以上是关于如何使用 select2 小部件 yii 制作依赖下拉列表的主要内容,如果未能解决你的问题,请参考以下文章

如何在 yii2 中使用 select2 小部件选择多个值

如何获取 yii2 select2 小部件的选定选项的值

如何在 Yii 2.0.43 版和 bootstrap4 中启用 select2 小部件的搜索控件

在 Yii2 Kartik Select2 小部件中,如何对选择事件进行 ajax 调用?

Yii2 在“select2”小部件上需要验证规则

如果我使用 select2 小部件,如何发布表中记录的实际主键而不是 php Yii2 中的数组索引?