Yii 更改时传递单选按钮值
在Yii语言中,用作搜索结果的列表视图。 控制器Yii 更改时传递单选按钮值,yii,Yii,在Yii语言中,用作搜索结果的列表视图。 控制器 public function actionSearch() { $key=$_GET['Text']; $criteria = new CDbCriteria(); $criteria->addSearchCondition('username',$key,true,"OR"); $criteria->select = "
public function actionSearch()
{
$key=$_GET['Text'];
$criteria = new CDbCriteria();
$criteria->addSearchCondition('username',$key,true,"OR");
$criteria->select = "`username`,`country`";
$data=new CActiveDataProvider('User',
array('criteria'=>$criteria,'pagination'=>array('pageSize'=>5),
));
$this->render('search', array(
'ModelInstance' => User::model()->findAll($criteria),
'dataProvider'=>$data,
));
}
search.php
<?php
//THE WIDGET WITH ID AND DYNAMICALLY MADE SORTABLEATTRIBUTES PROPERTY
$this->widget('zii.widgets.CListView', array(
'id'=>'user-list',
'dataProvider'=>$dataProvider,
'itemView'=>'results',
'template' => '{sorter}{items}{pager}',
));
?>
<?php echo CHtml::radioButtonList('type','',array(
'1'=>'Personal',
'2'=>'Organization'),array('id'=>'type'),array( 'separator' => "<br/>",'style'=>'display:inline')
);
?>
result.php
<?php echo $data->username."<br>"; ?>
<?php echo $data->country; ?>
用户模型字段为id、名称、国家/地区、类型,搜索结果显示名称和国家/地区。现在,希望根据更改个人/组织上的单选按钮筛选结果 您可以尝试在您的案例中使用传递列表视图的id用户列表的方法,并将其用作参数。ajax设置的数据属性可用于指定将传递给actionSearch以更新列表视图的GET参数。因此,您必须在操作中分析这些参数,并根据它们更改CDbCriteria实例
要在视图中注册以下将onchange处理程序绑定到单选按钮列表的脚本:
Yii::app()->clientScript->registerScript("init-search-radio-button-list", "
$('input[name=\"type\"]').change(function(event) {
var data = {
// your GET-parameters here
}
$.fn.yiiListView.update('user-list', {
'data': data
// another ajax settings if desired
})
});
", CClientScript::POS_READY);
你也可以考虑作为一个基于.< /P>的例子。 顺便说一下,出于性能原因,在ajax更新的情况下,可以部分渲染视图:
$view = 'search';
$params = array(
'ModelInstance' => User::model()->findAll($criteria),
'dataProvider' => $data
);
if (Yii::app()->request->isAjaxRequest)
$this->renderPartial($view, $params);
else
$this->render($view, $params);