如何在下拉列表中添加all选项以查询yii2中的所有类别?

时间:2015-03-14 15:08:12

标签: php model-view-controller yii2 yii2-advanced-app

所以我创建了一个简单的搜索表单,并在我的控制器中创建了查询(我知道这不是最好的方法,应该在我的模型/搜索模型中完成,但暂时它会做)。

我想知道如何在两个下拉列表中为我的表单添加一个选项,标签为All,如果传递将意味着该部分查询未应用。

以下是我的观点

        <?php $form = ActiveForm::begin(['id' => 'home-search','method' => 'post', 'action' => Url::to(['productitem/search'])]); ?>

    <?= $form->field($productitem, 'name')->textInput(array('placeholder' => 'What are you looking for?'))->label(false) ?>

    <?= $form->field($productitem, 'brand_id')->dropDownList(

        ArrayHelper::map(ProductBrand::find()->all(),'id','name'),
        ['prompt'=>'Select Brand']

    )->label(false) ?>

    <?= $form->field($productitem, 'category_id')->dropDownList(

        ArrayHelper::map(ProductCategory::find()->all(),'id','name'),
        ['prompt'=>'Select Department']

    )->label(false) ?>

    <div class="form-group search-button">
        <button type="submit" class="btn btn-primary" name="login-button">Search <i class="fa fa-lg fa-arrow-circle-o-right"></i></button>
    </div>

    <?php ActiveForm::end(); ?>

以下是我的控制器/查询

    public function actionSearch()
{
    $query = ProductItem::find()
    ->andFilterWhere(['like', 'name', $_POST['ProductItem']['name']])
    ->andFilterWhere(['in', 'brand_id', $_POST['ProductItem']['brand_id']])
    ->andFilterWhere(['in', 'category_id', $_POST['ProductItem']['category_id']]);

    $dataProvider = new ActiveDataProvider([
        'query' => $query
    ]);

    return $this->render('search', [
        'dataProvider' => $dataProvider,
    ]);

}

1 个答案:

答案 0 :(得分:0)

希望这会提供一些参考。

// jsonObj is your json object
jQuery.each(jsonObj, function(key,val) {
//key will have action,comedy and animation
console.log(key,val)
});