大神帮看下~~ 为什么 ajax实现二级联动 返回值会出现布局代码和文件? [ 2.0 版本 ]
想在页头()layout里面)部分做一个省市2级联动. 但是省会选择完后第二级城市里包含了整个页面的代码.要怎么处理才能屏蔽掉这些代码呢?
表单放在页头layout中,的代码如下
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($this->params['area'],'provinceid')->dropDownList(
Province::find()->select(['province','provinceid'])->indexBy('provinceid')->column(),
[
'prompt'=>'请选择城市',
'onchange'=>'$.post("index.php?r=index/list&id='.'"+$(this).val(),function(data){
$("select#area-cityid").html(data);
});',
]
)->label('省份') ?>
<?= $form->field($this->params['area'],'cityid')->dropDownList(
City::find()->select(['city','cityid'])->indexBy('cityid')->column()
)->label('城市') ?>
<?= Html::submitButton('确定',['class'=>'btn btn-success']); ?>
<?php ActiveForm::end()?>
ps:以上代码放在views测试可以实现联动的. 问题是必须放页头,也就布局layout里,这边会多出html代码和css js文件,造成联动失败.
controller代码如下:
public function actionList($id=220000)
{
$countCity = City::find()->where('provinceid=:id',[':id'=>$id])->count();
$cities = City::find()->where('provinceid=:id',[':id'=>$id])->all();
if($countCity >0){
foreach ($cities as $city) {
echo "<option value='" . $city->cityid . "'>" . $city->city. "</option>";
}
echo "<option>-</option>";
}
}
共 0 个回答
没有找到数据。
且听风吟
注册时间:2017-04-01
最后登录:2019-10-23
在线时长:8小时26分
最后登录:2019-10-23
在线时长:8小时26分
- 粉丝2
- 金钱75
- 威望0
- 积分155