好吧我正在嘗試使用Kartik Depdrop小部件,我得到的白色下拉列表中的值不顯示在從屬下拉列表中。Yii2:使用Kartik Depdrop Widget?
我有一個狀態模型和一個城市模型,我把它設置成這樣。
在_form.php這個
$catList=ArrayHelper::map(app\models\State::find()->all(), 'id', 'state_name');
echo $form->field($model, 'state')->dropDownList($catList, ['id'=>'state_name']);
echo $form->field($model, 'district_city')->widget(DepDrop::classname(), [
'options'=>['id'=>'district_city'],
'pluginOptions'=>[
'depends'=>['state_name'], // the id for cat attribute
'placeholder'=>'Select...',
'url'=> \yii\helpers\Url::to(['patient-entry/subcat'])
]
]);
?>
然後在模型
public static function getCity($city_id) {
$data=\app\models\City::find()
->where(['state_name'=>$city_id])
->select(['id','city_name'])->asArray()->all();
return $data;
}
然後在我的控制器
public function actionSubcat() {
$out = [];
if (isset($_POST['depdrop_parents'])) {
$parents = $_POST['depdrop_parents'];
if ($parents != null) {
$cat_id = $parents[0];
$out = \app\models\PatientEntry::getCity($cat_id);
echo Json::encode(['output'=>$out, 'selected'=>'']);
return;
}
}
echo Json::encode(['output'=>'', 'selected'=>'']);
}
當我選擇狀態字段,Firebug控制檯正確顯示數據如:
{"output":[{"id":"172","city_name":"Along"},{"id":"173","city_name":"Bomdila"},{"id":"174","city_name":"Itanagar"},{"id":"175","city_name":"Naharlagun"},{"id":"176","city_name":"Pasighat"}],"selected":""}
城市字段下拉列表也顯示爲已填充數據,但只顯示空格。
我在做什麼錯在這裏?
謝謝。
感謝。爲我工作。 – Tanmay 2016-04-20 02:53:55