关于droplist onchange和保持状态的刷新视图

时间:2014-06-26 12:56:14

标签: javascript ajax yii highcharts

我有一个视图,其中包含一些用户数据,CListView,其中包含从数据库中获取的数据,表示请求日志(IP,密钥,日期/时间)以及基于该数据绘制图表的自定义HighCharts小部件数据

CListView呈现数据而不进行分组,也就是说,它是数据库中保存内容的1:1表示。

HighCharts小部件应该呈现按日,月或年分组的数据。

我注意到CListView能够重新渲染整个页面而无需重新加载它,执行AJAX请求(我还没有在我的控制器中实现)。

是否可以创建单个dropDownList小部件,该小部件将触发相同的AJAX请求并使我的控​​制器操作尊重所选值?

这是我的控制者的行动:

public function actionUser($id)
{
    $usuario = User::model()->with('Contract')->findByPk($id);

    $contract = new CArrayDataProvider($usuario->Contract, array(
            'keyField'=>'idkey'
    ));

    $usage = new CArrayDataProvider($user->Usage, array(
        'keyField'=>'idusage',
        'pagination'=>array(
            'pageSize'=>15
        )
    ));

    $this->render('user',array(
        'user'=>$user,
        'contract'=>$contract,
        'usage'=>$usage
    ));
}

dropDownList小部件

<?php echo CHtml::dropDownList('graph', 'gr', array(
    'd'=>'Daily',
    'm'=>'Monthly',
    'y'=>'Yearly'
)); ?>

1 个答案:

答案 0 :(得分:0)

我建议向控制器发送ajax请求以获取数据,然后将json格式的数据返回到视图。然后使用新数据重新呈现高清图。