2017-08-16 14:37:14 1542次浏览 0条回答 0 悬赏 65 金钱

1.png

想在页头()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>";
	}

}

    没有找到数据。
您需要登录后才可以回答。登录 | 立即注册
且听风吟
助理

且听风吟

注册时间:2017-04-01
最后登录:2019-10-23
在线时长:8小时26分
  • 粉丝2
  • 金钱75
  • 威望0
  • 积分155

热门问题