Yii2选择2 ajax下拉加载

Yii2选择2 ajax下拉加载,yii2,Yii2,我正在使用Yii2Kartik小部件使用两个Select2Ajax加载下拉列表。在更改第一个下拉列表的选择时,我需要更改第二个下拉列表的选择 第一个下拉列表 尝试以以下方式使用onchange事件: [ 'options' => [], // other settings 'pluginEvents' => [ 'change' => "function() { alert('change'); }", ] ] 您可以在该页面

我正在使用Yii2Kartik小部件使用两个Select2Ajax加载下拉列表。在更改第一个下拉列表的选择时,我需要更改第二个下拉列表的选择

第一个下拉列表

尝试以以下方式使用onchange事件:

[
    'options' => [],
    // other settings
    'pluginEvents' => [
        'change' => "function() { alert('change'); }",
    ]
]

您可以在该页面上找到其他信息

如果您不限于仅使用Select2小部件,我建议您使用Kartik V的DepDrop小部件,该小部件专门为依赖下拉菜单创建

由于您并没有给出代码实际执行的很多上下文,所以我将给出一个简单的2级依赖关系示例,该示例对Kartik V的depdrop小部件页面中给出的示例稍加修改

/*
 * 2-level dependency example
 */
// THE VIEW
use kartik\widgets\DepDrop;

// Parent 
echo $form->field($model, 'cat')->dropDownList($catList, ['id'=>'cat-id']);

// Dependent Dropdown (Child)
echo $form->field($model, 'subcat')->widget(DepDrop::classname(), [
    'options'=>['id'=>'subcat-id'],
    'pluginOptions'=>[
        'depends'=>['cat-id'],
        'placeholder'=>'Select...',
        'url'=>Url::to(['/site/subcat'])
    ]
]);   

// THE SITE CONTROLLER (/site/subcat)
public function actionSubcat() {
    $out = [];
    if (isset($_POST['depdrop_parents'])) {
        $parents = $_POST['depdrop_parents'];
        if ($parents != null) {
            $cat_id = $parents[0];
            $out = self::getSubCatList($cat_id); 
            // the getSubCatList function will query the database based on the
            // cat_id and return an array like below:
            // [
            //    ['id'=>'<sub-cat-id-1>', 'name'=>'<sub-cat-name1>'],
            //    ['id'=>'<sub-cat_id_2>', 'name'=>'<sub-cat-name2>']
            // ]
            echo Json::encode(['output'=>$out, 'selected'=>'']);
            return;
        }
    }
    echo Json::encode(['output'=>'', 'selected'=>'']);
}
以上代码可以根据您的要求进行定制


以下是有关更多详细信息的链接:

您可以添加此类查询以生成作业


$cusname=QtnUdno::find->select'PCODE'->其中['UDNO'=>$model->QTN\u UDNO]->一个

您的答案首先假设可以使用另一个库,尽管问题特别提到select2。如果您有关于问题限制的问题,我建议您首先对问题进行评论,而不是回答问题。在本例中使用select2可能有几个原因。但是,您的答案格式正确。谢谢您的反馈。我曾试图对这个问题添加评论,但由于缺乏声誉,我无法这样做。更重要的是,尽管DepDrop是一个不同的插件,但它可以选择设置要生成的下拉列表的类型,并支持Select2插件。是的,您的声誉是正确的。我没有想到声誉这一部分,你也不可能以其他方式做到这一点。我的错。你可以不理会这个评论。无论如何,你决定发布你的第一个答案真是太好了!它的格式很好,您在示例中包含了这么大的一段代码,这很好。祝你好运