Я пытался реализовать фильтрацию данных (список основан на выбранной категории), используя раскрывающийся список с полем наблюдения и разбиением на страницы ajax. Я использую сеанс, чтобы запомнить выбранную категорию, чтобы сохранить нумерацию страниц.
Вот мой код (Cakephp 1.2)
С учетом :
echo $form->select('Category.id', $categories, null, array('id' => 'categories'),'Filter by Categories')
echo $ajax->observeField('categories' ,array('url' =>'update_category','update' => 'collectionDiv'));
В контроллере:
if(!empty($this->data['Category']['id']))
{
$cat_id=$this->data['Category']['id'];
$filters=array('Collection.category_id' => $cat_id);
$this->set('collections', $this->paginate('Collection', $filters));
$this->Session->write($this->name.'.$cat_id', $category_id);
}
else
{
$cat_id=$this->Session->read($this->name.'.cat_id');
$filters=array('Collection.category_id' => $cat_id);
$this->set('collections', $this->paginate('Collection'));
}
Фильтр работает так, как я хотел, но проблема в том, что когда я выбираю пустое значение («Фильтровать по категории»), он все еще помнит последний сеанс категории, поэтому я не могу вернуться к списку по умолчанию (все записи без фильтра).
Я пытался сделать некоторые условия, но до сих пор не удалось. Есть ли другой способ? Пожалуйста, я ценю вашу помощь. благодарить
гермаван