2016-10-28 12:06:15 3166次浏览 2条回答 0 悬赏 15 金钱

有如下代码,在一个表单里有个dropdownlist
<?= Html::a('数据分析', ['alldataanalysis','id' =>$rtutablename], ['class' => 'btn btn-success']) ?>

     <?=Html::beginForm(['/waterMonitor/water-singlertustation/selectrtu','post','id'=>$rtutablename]);?>
     <?=Html::label('rtu编号:'.$rtutablename);?>
    <?= Html::dropDownList('rtuname',$rtutablename,ArrayHelper::map($data,'sitenumberid','sitenumber'),['onchange'=>'this.form.submit()','prompt'=>'请选择:rtu表','style'=>'width:120px']); ?>
    <?= Html::endForm();  ?>

麻烦请问下,如何在表单头的“'id'=>$rtutablename” 处,给id赋上正确的dropdownlist的选中的值啊,我用'id' = >'rtuname'->$selection,出错,用$rtutablename的话,页面总是先得到post地址,然后再进入selectrtu函数,结果总是不对,我希望选不同下拉项的时候就能在地址上得到选中项,请问该怎么弄啊,谢谢

补充于 2016-10-28 14:04

这个流程到底是怎么样的呀?可我能在control里拿到用户选的值啊,
用户选择dropdownlist ->引发onchange ->submit()提交 ->进入selectrtu函数,
在我的control里的selectrtu函数是这样的:
public function actionSelectrtu()
{
if(!isset($rtutablename))

        $rtutablename = '';

    $val =   Yii::$app->request->post('rtuname');     //<==这里可以得到dropdownlist选中的值,
    $data =  Waterstation::find()->all();

    $dataProvider = new ActiveDataProvider([
       'query' => WaterSinglertustation::findx('rtu_'.$val),
    ]);

    $rtutablename = $val;

    return $this->render('index', [
        'dataProvider' => $dataProvider,
        'data' =>$data,
        'rtutablename' =>$rtutablename,
    ]);

}
也就是说用户选中新的下拉项后,值应该已经确定了,就包含在post里,只是我不知道怎么做,能把这个值显示在url地址上,应该不是很难的事啊,非要用js么,还有js怎么写啊,先谢了

您需要登录后才可以回答。登录 | 立即注册
38934
等待激活

38934

注册时间:2016-10-31
最后登录:1970-01-01
在线时长:0小时0分
  • 粉丝0
  • 金钱5
  • 威望0
  • 积分5

热门问题