您好,这是我第一次尝试在yii2中从头开始做一个下拉菜单,我正在他们的wiki中阅读一些教程并按照说明进行操作。
我的问题是依赖下拉列表不起作用,当我选择一个类别子类别中没有任何内容时,子类别只列出所有子类别名称。
在我的SubCatController中:
public function actionLists($id)
{
$countSubCat = SubCat::find()
->where(['category_id' => $id])
->count();
$SubCat = SubCat::find()
->where(['category_id' => $id])
->count();
if ($countSubCat > 0) {
foreach($SubCat as $id) {
echo "<option value'".$id->id."'>".$id->sub_category."</option>";
}
}
else {
echo "<option>-</option>";
}
}
以我的形式:
<?= $form->field($model, 'category_id')->dropDownlist(
ArrayHelper::map(Category::find()->all(), 'id', 'category_name'),
[
'prompt' => 'Select Category',
'onchange' => '
$.post( "index.php?r=sub-cat/lists&id='.'"+$(this).val(), function( data ) {
$( "select#models-contact" ).html( data );
});'
]
); ?>
<?= $form->field($model, 'sub_cat_id')->dropDownlist(
ArrayHelper::map(SubCat::find()->all(), 'id', 'sub_category'),
[
'prompt' => 'Select Sub Category',
]
); ?>
我坚持使用这个我无法理解任何人可以帮助我。 TIA
答案 0 :(得分:0)
我是在某人的帮助下修好的。
$SubCat = SubCat::find()
->where(['category_id' => $id])
->all();
if (!empty($SubCat)) {
foreach($SubCat as $subcat) {
echo "<option value'".$subcat->id."'>".subcat->sub_category."</option>";
}
}
else {
echo "<option>-</option>";
}
}