我想为用户创建一个过滤器进行搜索。我创建这个依赖的下拉列表但它不起作用。我有城市'并且'州'表。它不起作用。
安慰中的错误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>";
}
答案 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 );
});
'