Yii2:要搜索的从属下拉列表

时间:2016-03-20 00:39:37

标签: yii2 yii2-basic-app

我想为用户创建一个过滤器进行搜索。我创建这个依赖的下拉列表但它不起作用。我有城市'并且'州'表。它不起作用。 安慰中的错误POST http://localhost/smarthouse/web/index.php?r=post/lists?id=1 404 (Not Found)

有人可以告诉我哪里出错了吗? 感谢。

我的表格

    <?php
 $dataCity=ArrayHelper::map(\app\models\Cities::find()->
 asArray()->all(),'id', 'name');    
              $form = ActiveForm::begin();
            echo $form->field($searchModel, 'id')->dropDownList($dataCity, 
                                 [''=>'-Choose a Name-',
                                     'class'=>'adjust',
                      'onchange'=>'
         $.post("index.php?r=post/lists?id='.
       '"+$(this).val(),function( data ) 
               {
                          $( "select#post" ).html( data );
                        });
                    ']); 

            $dataState=ArrayHelper::map(\app\models\States::find()->
             asArray()->all(), 'id', 'name');
          echo $form->field($searchModel, 'id')
                ->dropDownList(
                    $dataState,   
                     ['id'=>'name',
                         'class'=>'adjust'
                         ]
                );
             ActiveForm::end(); 
           ?>

我在帖子控制器中的列表操作

public function actionLists($id)
  {
     $countPosts = States::find()
     ->where(['city_id' => $id])
     ->count();

     $posts = States::find()
     ->where(['city_id' => $id])
     ->orderBy('id DESC')
     ->all();

     if($countPosts>0){
     foreach($posts as $post){

     echo "<option value='".$post->id."'>".$post->name."</option>";
     }
     }
     else{
     echo "<option>-</option>";
     }

1 个答案:

答案 0 :(得分:1)

在你的onchange $ .post路径中,第二个GET参数应以&开头而不是?这样`index.php?r = post / lists&amp; id

 'onchange'=>'
     $.post("index.php?r=post/lists&id='. // use & not ? 
   '"+$(this).val(),function( data ) 
           {
                      $( "select#post" ).html( data );
                    });
                '