Всем добрый вечер. Подскажите пожалуйста реализацию фильтра на ajax, т.е. к примеру у нас на странице есть поле выбора города, цены(от стольки то и до стольки) и т.д. Когда нажимаем на кнопку, делаем выборку из БД по этим параметрам, то что сейчас есть и оно не работает
В конроллере:
public function actionIndex()
{
$model = new Ads('search');
// Сбрасываются поля
$model->unsetAttributes();
// Вставляются передаваемые по ajax или без параметры из полей
if(isset($_POST['Ads'])) {
$model->attributes= $_POST['Ads'];
}
// Заполненная переданными данными модель передаётся в грид
$this->render('index',array(
'model'=>$model,
));
}
И в представлении /ads/index.php
///Форма
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'ads-search-form',
'enableAjaxValidation'=>false,
));
$model = new Ads;
?>
<p>
<?php echo $form->textField($model,'search_text'); ?>
<?php echo $form->dropDownList($model, 'cat_id', CHtml::listData(Adscat::model()->findAll(),'id','name'), array('empty'=>'Выберите категорию'));?>
<?php echo $form->dropDownList($model, 'place_id', CHtml::listData(Place::model()->findAll(),'id','name'), array('empty'=>'Выберите город'));?>
Только с фото <?php echo $form->checkBox($model,'has_foto'); ?>
</p>
<p>
Цена от <?php echo $form->textField($model,'price_min'); ?> до <?php echo $form->textField($model,'price_max'); ?>
<?php echo CHtml::ajaxSubmitButton('Submit', '/ads', array(
'type' => 'POST',
'update' => '.ads-catalog',
),
array(
'type' => 'submit'
)); ?>
</p>
<?php $this->endWidget(); ?>
///CListView
<?php $this->widget('zii.widgets.CListView', array(
'dataProvider' => $model->search(),
'itemView' => '_view',
'summaryText' => false,
'cssFile'=>false,
'ajaxUpdate'=>true,
'pagerCssClass' => 'pagination',
'pager' => array(
'cssFile'=>false,
'header' => 'Страницы',
'prevPageLabel' => '',
'nextPageLabel' => '',
'firstPageLabel' => '',
'lastPageLabel' => '',
),
'updateSelector'=>'#yw0 .sort a',
'enableSorting' => true,
'sorterHeader' => 'Сортировать по:',
'sorterCssClass' => 'sort small',
'sortableAttributes' => array(
'name' => 'алфавиту',
'price' => 'стоимости',
)
)); ?>
В заголовках параметры передаются вроде, но выводятся все поля с БД независимо от переданных параметров