如何使用select2小部件进行依赖下拉列表yii

时间:2015-10-27 10:21:41

标签: ajax yii jquery-select2-3

我想使用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 --',
),));?>

这是我的cotroller:

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

我不知道如何将$kabupaten的值发送到我上次的select2下拉列表

1 个答案:

答案 0 :(得分:0)

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

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

让我知道任何进一步的查询。