Javascript 刷新droplist更改和保持状态的视图

Javascript 刷新droplist更改和保持状态的视图,javascript,ajax,yii,highcharts,Javascript,Ajax,Yii,Highcharts,我有一个包含一些用户数据的视图,一个从数据库中获取数据的CListView,表示请求日志(IP、密钥、日期/时间),还有一个自定义HighCharts小部件,它根据这些数据绘制图表 CListView不分组地呈现数据,也就是说,它是数据库中保存内容的1:1表示 HighCharts小部件应按天、月或年呈现数据分组 我注意到CListView能够重新呈现整个页面,而无需重新加载页面,执行AJAX请求(我还没有在我的控制器中实现) 是否可以创建一个dropDownList小部件来触发相同的AJAX请

我有一个包含一些用户数据的视图,一个从数据库中获取数据的
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'
)); ?>

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

使用json(通过php中的json编码)与javascript($.getJSON())通信脚本。