0

我需要知道我们是否可以在 cgridview 中使用会话来存储获得的值。

就像是

在视野中

//  cgridview
    ..........
 ' name',
  array
 ('header'=>'ID',
 'value'=>'Yii::app()->SESSION['id']=$data["rid"]'),

 .......

这是我的网格视图

 <?php
 $this->widget('zii.widgets.grid.CGridView', array(
 'dataProvider'=>$dataP10,
 'ajaxUpdate'=>true,
 'columns'=>array(

  array('name'=>' Name','value'=>'$data["name"]'),

 array('name'=>' createdate','value'=>'$data["createdate"]'),

  array(
 'class'=>'CButtonColumn',
 'template'=>'{view}',
 'buttons'=>array(

                    'view'=>array(
                        'url'=>'Yii::app()- >createUrl("controller/action",array("id"=>$data["id"]))',
                    ),
                ),
    ),

 ),

  ));
  ?>

这里 data["id"] 我不希望它是查询字符串,而是在会话中的某些特定记录,它的 id 在会话中

      'view'=>array(
                        'url'=>'Yii::app()- >createUrl("controller/action",array("id"=>$data["id"]))',
                    ),

任何人都可以让我知道如果是这样的话会发生这种情况然后建议你的指导

4

1 回答 1

1

你的网格定义对我来说很神秘!

我认为你需要的是这样的,cbuttoncolumn 上的 ajax 事件

 array(
            'class'=>'CButtonColumn',
            'header'=>'Add',
            'template'=>'{add}',
            'buttons'=>array(
                'add'=>array(
                    'label'=>'Mark It',                        
                    'url'=>'Yii::app()->createUrl("Controller/markIt", array("id"=>$data['id']))',
                    'options'=>array(
                        'ajax'=>array(
                            'type'=>'POST',
                            'url'=>'js:$(this).attr("href")',
                            'success'=>'function(data, textStatus, jqXHR){
                                var json = $.parseJSON(data);
                             }',
                            'error'=>'function(jqXHR, textStatus, errorThrown){
                                alert(errorThrown)
                            }',
                        ),
                    ),
                ),
               'view'=>array(
                    'url'=>'Yii::app()->createUrl("controller/view",array("id"=>$data["id"]))',
                ),
            ),
        ),

在控制器中,您必须定义一个函数 e。G

控制器

  public function markIt($id){
     if(Yii::app()->getRequest()->getIsAjaxRequest()) {
         $_SESSION['id']=$id;
     }
  }

public function view($id){
    //view records 
}

现在给出您的评论我很困惑,您想单击记录并-->将相应的记录ID添加到会话-->查看记录

如果您需要执行这两个操作,您只需将其放在视图功能的顶部,例如 function view($id){ //check if record found $_SESSION['id']=$id; ... reset of the code }

否则请参见上面的代码,其中您有两个按钮,一个用于将值设置为会话,另一个用于查看记录。您首先需要清楚操作流程。

于 2014-01-29T05:21:40.667 回答