使用dropDownList请求后的renderPartial

时间:2014-06-30 08:43:31

标签: javascript php ajax yii

首先,请注意我注意到具有分页器的常见Yii小部件可以在不重新加载页面的情况下转到任何页面,而只是通过AJAX请求它​​然后更改已加载页面的内容。这种行为将完全满足我目前的需求。

我的一个观点中有一个简单的dropDownList。我尝试做的是改变页面的内容,而不用重新加载页面,就像Yii的小部件一样。

这可能吗?怎么样?

我尝试在我的控制器中做这样的事情:

if(Yii::app()->request->isAjaxRequest){
    $this->renderPartial(.....);
}

这是我的dropDownList

<?php
    echo CHtml::dropDownList('usage', 'cg', array(
        'd'=>'Daily',
        'm'=>'Monthly'
    ), array(
        'submit'=>array('admin/user', 'id'=>$user->iduser),
        'params'=>array('cg'=>'js:$(this).val()'),
        'options'=>array(
            Yii::app()->session['cg']=>array(
                'selected'=>true
            )
        )
    ));
?>

dropDownList不断重新加载页面。

1 个答案:

答案 0 :(得分:1)

我已经完成了以下操作,根据所选的dropDownList值重新加载div的内容。可能会对你有所帮助。

echo CHtml::dropDownList('usage','cg',array('d'=>'Daily','m'=>'Monthly'),array('ajax'=>array(
        'type'=>'POST', //request type
        'url'=>$this->createUrl('controller/loadContent'), //url to call.
        'update'=>'#div_id',//div to update
        'data'=>array('cg'=>'js:this.value') 
        ))); 


public function actionLoadContent()
{
   ..........
   ..........
   $this->renderPartial('_ajaxContent', $data, false, true);
}