首先,请注意我注意到具有分页器的常见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
不断重新加载页面。
答案 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);
}