2016-03-20 2 views
1

Я хочу создать фильтр для поиска пользователем. Я создаю этот зависимый выпадающий список, но он не работает. У меня есть «город» и «штатные» таблицы. Это не работает. ОШИБКА в conslode POST http://localhost/smarthouse/web/index.php?r=post/lists?id=1 404 (Not Found)Yii2: Dependent Выпадающий список Поиск

Может кто-нибудь сказать мне, где я ошибся? Спасибо.

Моя форма

<?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

В вашем OnChange $ .POST путь второй параметр GET должен начинаться с & и не с ? этот путь `индекс. php? r = post/lists & id

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

Спасибо:) Оно работает – Starite

Смежные вопросы