首先,请注意,我注意到具有分页器的常见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
一直在重新加载页面
我已经做了以下操作来根据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);
}