简体   繁体   English

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

[英]How to make dependent dropdown using select2 widget yii

I want to make a dependent dropdown using select2, but i cannot change the data for the next dropdown($kabupaten) , this is my code in view : 我想使用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 --',
),));?>

and this is my cotroller : 这是我的孩子:

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

I dont know how to send value of $kabupaten to my last select2 dropdown 我不知道如何将$kabupaten值发送到我的上一个select2下拉列表

You can send value of $kabupaten in your view by encoding data in CHtml::tag() as follows: 通过在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);
        }
} 

Let me know incase of any further query for the same. 让我知道是否有任何进一步的查询。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM