Добрый вечер всем, пытаюсь сделать 2 выпадающих списка которые зависят друг от друга.
Есть 2 таблицы category и sub_category. В таблице category 2 поля id и category(название категории), в таблице sub_category 3 поля id, id_category, sub_category(название под категории). Вот собственно вьюшка
<? $category = Category::find()->all()?>
<? $category = ArrayHelper::map($category, 'id', 'category');
$params = ['prompt' => 'Select category']?>
<?= $form->field($model, 'category')->dropDownList($category, $params) ?>
<?= $form->field($model, 'sub_category')->widget(DepDrop::classname(),[
'options' => ['id','sub_category'],
'pluginOptions' => [
'depends' => ['id'],
'placeholder' => 'select',
'url' => Url::to(['user/sub'])
]
]) ?>
А тут контроллер
public function getSubCategory($id) { // could be a static func as well
$sub_category = SubCategory::find()->where(['id_category' => $id])->asArray()->all();
return ArrayHelper::map($sub_category, 'id', 'sub_category','id_category');
}
public function actionsub() {
$out = [];
if (isset($_POST['depdrop_parents'])) {
$parents = $_POST['depdrop_parents'];
if ($parents != null) {
$id = $parents[0];
$out = SubCategory::getSubCategory($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'=>'']);
}
Не могу понять в чем ошибка? Страница отображается без ошибок. Как отследить ошибки ajax не знаю(