duanji9677 2015-05-28 07:40
浏览 56
已采纳

Yii gridview CHTML :: dropdown as value不起作用

I'am trying to implement a dropdownlist inside the gridview, but it is not working.

Here's my code

$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->roadies_search(),
'filter' =>$model,
'columns'=>array(

    array(
        'name'=>'hname_search',
        'header'=>'Hospital Name',
        'value'=>'($data->AssociatedHospitals) ? $data->AssociatedHospitals : ""',
    ),
    array(
        'type'=>'raw',
        'header'=>'Users',
        'id' => 'test',
        'value'=>function(){
                $res=Yii::app()->db->createCommand("SELECT name,id FROM med_user WHERE rank>3")->queryAll();
                $html = '<select name="user" style="width:100%;">
                <option selected>Select User</option>
                ';
                foreach ($res as $key) {
                    $html.='<option value="'.$key['id'].'">'.$key['name'].'</option>
                    ';
                }
                $html.='</select>';
                return $html;
            },
        ),
)

));

I have tried it using the following function too:

public function getUsername(){
    $res=Yii::app()->db->createCommand("SELECT name,id FROM med_user WHERE rank>3")->queryAll();
    return CHtml::dropDownList('usersselectlist'.$this->id,'user_id',CHtml::listData($res, 'id', 'name'));
}

I want to show all the users as a dropdown, for every row in the gridview.

EDIT

I figured out that the dropdown works fine for firefox, but the problem is with chrome. It is not showing the selected values.

Here's an example

Chrome: http://i.imgur.com/eAvBRwO.png

Firefox: http://i.imgur.com/7wBc1GX.png

  • 写回答

2条回答 默认 最新

  • duanchi1230 2015-05-28 21:03
    关注
    $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'user-grid',
    'dataProvider'=>$model->roadies_search(),
    'filter' =>$model,
    'columns'=>array(
    
        array(
            'name'=>'hname_search',
            'header'=>'Hospital Name',
            'value'=>'($data->AssociatedHospitals) ? $data->AssociatedHospitals : ""',
        ),
        array(
            'type'=>'raw',
            'header'=>'Users',
            'id' => 'test',
            'value'=>function(){
                    // but better prepare data in model and set here from controller
                    $dataReader = Yii::app()
                        ->db
                        ->createCommand("SELECT name,id FROM med_user WHERE rank>3")
                        ->query();
                    $dropList = array();
                    foreach ($dataReader as $row) {
                        $id = $row['id'];
                        $dropList[$id] = $row['name'];
                    }
                    return CHtml::dropDownList('my', null/* or selected id */, $dropList);
                },
            ),
    )
    
    ));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么