gpt4 book ai didi

yii2 - 依赖下拉 yii2。怎么做?

转载 作者:行者123 更新时间:2023-12-01 07:06:59 25 4
gpt4 key购买 nike

我可以在 yii2 中创建一个依赖下拉列表吗?

我有两个表:

'id','name_country"
'id','name_city','country_id'

并在我的模型中有两种方法:
public function getCountryList()
{
$models = NetCountry::find()->asArray()->all();
return ArrayHelper::map($models, 'id', 'country_name');
}


public function getCityList($parent_id) { 
$models = \common\models\City::find()->where(['parent_id' => $country_id])->asArray()->all();
return ArrayHelper::map($models, 'id', 'name_city','country_id');
}

我有第一个字段:
 <?= $form->field($model, 'country')->dropDownList($model->countryList),['id'=>'parent_id'];

第二个
<?= $form->field($model, 'city')->dropDownList($model->cityList);

我需要“传输” parent_id到 Controller 并返回 city_list通过 AJAX(使用 JSON)。

我怎样才能做到这一点?我看到了 an example in Yii1 ,但是 Yii2 呢?

最佳答案

使用 krajee 扩展进行依赖下拉

详情在这里Krejee dependent dropdown for yii2

或遵循以下说明:

通过 Composer 安装扩展:

 $ php composer.phar require kartik-v/dependent-dropdown "dev-master"

在您看来:
  use kartik\widgets\DepDrop;

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

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

// Controller
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'=>'']);
}

关于yii2 - 依赖下拉 yii2。怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23951520/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com