通过AJAX -Yii-更新的ListView [英] -Yii- Update listView by AJAX
问题描述
我在Yii的和PHP非常新,我有一个问题。
I'm very new at Yii and PHP, and I have a question.
我需要通过从下拉菜单选择AJAX过滤更新列表视图,它工作正常,但问题是分页。
我过滤控制器中的结果,并将dataProvider传递给视图改变列表视图,但是当y从分页程序改变页面它再次示出了所有的结果,而不是将过滤的结果。
I need a listView to be updated by ajax filtering from a dropdown selection, and it is working fine but the problem is the pagination. I filter the results in the controller and pass the dataProvider to the view to change the listView, but when y change the page from paginator it shows again all results instead of the filtered results.
下面是code我有:
视图(prueba.php):
<?php
echo CHtml::beginForm();
echo CHtml::dropdownList('comunidades',$comunidad,$comunidades,
array('empty'=>'- -')
);
echo CHtml::submitButton("Enviar");
echo CHtml::endForm();
$this->widget('zii.widgets.CListView',
array(
'itemView'=>'lista',
'dataProvider'=>$provider_ciudades,
'id'=>'id_lista_ciudades',
)
);
Yii::app()->clientScript->registerScript('items_update', "$('#category_id').change(function(){
$.fn.yiiListView.update('id_lista_ciudades', {
data: $(this).serialize(),
}
);
});
return false;",
CClientScript::POS_READY);?>
控制器(即呈现视图的动作):
public function actionprueba(){
if($_POST['comunidades'] != null)
$comunidad = $_POST['comunidades'];
else
$comunidad = '';
$criteria_comunidades = new CDbCriteria();
$criteria_comunidades->select="comunidad";
$res_comunidades = Ciudad::model()->findAll($criteria_comunidades);
if($res_comunidades != null)
$comunidades = CHtml::listData($res_comunidades,'comunidad','comunidad');
else
$comunidades = null;
$criteria_ciudades = new CDbCriteria();//Creiteria para la busqueda de las ciudades.
if(strlen($comunidad) > 0)
$criteria_ciudades->addCondition("comunidad='$comunidad'");//Condicion de comunidad.
$provider_ciudades = new CActiveDataProvider('Ciudad',
array(
'pagination'=>array(
'pageSize'=>3,
),
'criteria'=>$criteria_ciudades
)
);
$this->render('prueba',
array(
'comunidades' => $comunidades,
'provider_ciudades' => $provider_ciudades,
'comunidad' => $_POST['comunidades'],
)
);
}
感谢任何帮助:)
Thanks for any help :)
推荐答案
好吧,我解决了这个问题,我需要新的动作,职位从 prueba.php 的数据,并通过ajaxSubmitButton改变提交按钮,取而代之列表视图阿贾克斯。
Ok, I solved it, I needed new action to POST the data from prueba.php and changed the submitButton by ajaxSubmitButton and replaced the listView by ajax.
这篇关于通过AJAX -Yii-更新的ListView的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!