Простенький фильтр
Доброго времени суток, уже третьи сутки бьюсь над казалось бы просто задачей, но разобраться все не как не получается..
И так, по порядку: 1) Есть таблица которая содержит в себе информацию для 2 разделов "Товары", "Новости" (определяется различие между разделами, с помощью столбца type в таблице); 2) Есть страница на которую, при загрузке выводятся вся информация из вышеописанной таблицы; 3) На странице выпадающий список с 2 пунктами "Товары", "Новости". Нажимаем на "Новости", выводятся только новости, нажимаем на "Товары" выводятся только товары. РЕАЛИЗАЦИЯ (работаю на Godignaiter): 1) Выводим информацию на страницу так: <div id="content"> <!-- ФОРЫЧЬ ---> <?php $group = $post_array[1]; foreach ($group as $group): ?> <?=$group['img']?> <?=$group['name']?> <?=$group['url_g']?> <?=$group['id']?> <?=$group['visible']?> <?php endforeach?> <!--/ ---> </div> <!-- ПЕЙДЖЕР ---> <?php echo $this->pagination->create_links();?> <!--/ ---> 2) Разметка самого фильтра (выпадающего списка): <div class="dropdown"> <span class="selLabel">Выберите рубрику</span> <input type="hidden" name="cd-dropdown"> <ul class="dropdown-list"> <li> <span>Товары</span> </li> <li> <span>Новости</span> </li> </ul> </div> 3) Информацию о выбранном пункте передаем серверу так: var url_edit = document.location.pathname.split('/')[2]; $(".selLabel").click(function () { $('.dropdown').toggleClass('active'); }); $(".dropdown-list li").click(function() { $('.selLabel').text($(this).text()); $('.dropdown').removeClass('active'); $.ajax({ type: "post", url: "../admin_c/load_heading", data: { 'type': $.trim( $('.selLabel').text() ), }, success: function(data){ $('#content').load(''+url_edit+' #content'); } }); }); 4) Обработка алгоритма на сервере: // КОНТРОЛЛЕР function load_heading() { if (isset($_POST['type'])) { $this->load->library('pagination'); $config['base_url'] = base_url().'admin_c/load_heading/'; $config['type'] = $_POST['type']; $this->db->where('type', $_POST['type']); $this->db->from('group'); $config['total_rows'] = $this->db->count_all_results(); $config['per_page'] = '10'; $config['first_link'] = '<span class="first_last">ПЕРВАЯ</span>'; $config['last_link'] = '<span class="first_last">ПОСЛЕДНЯЯ</span>'; $config['next_link'] = '<span class="first_last"><i class="fa fa-chevron-right" aria-hidden="true"></i></span>'; $config['prev_link'] = '<span class="first_last"><i class="fa fa-chevron-left" aria-hidden="true"></i></span>'; $this->pagination->initialize($config); $this->data['post_array'][1] = $this->admin_model->get_group($config, $this->uri->segment(3)); $this->load->view('pages/admin/head'); $this->load->view('pages/admin/heading', $this->data); $this->load->view('pages/admin/footer'); }else{ $this->load->library('pagination'); $config['base_url'] = base_url().'admin_c/load_heading/'; $config['total_rows'] = $this->db->count_all('group'); $config['per_page'] = '10'; $config['first_link'] = '<span class="first_last">ПЕРВАЯ</span>'; $config['last_link'] = '<span class="first_last">ПОСЛЕДНЯЯ</span>'; $config['next_link'] = '<span class="first_last"><i class="fa fa-chevron-right" aria-hidden="true"></i></span>'; $config['prev_link'] = '<span class="first_last"><i class="fa fa-chevron-left" aria-hidden="true"></i></span>'; $this->pagination->initialize($config); $this->data['post_array'][1] = $this->admin_model->get_group($config, $this->uri->segment(3)); $this->load->view('pages/admin/head'); $this->load->view('pages/admin/heading', $this->data); $this->load->view('pages/admin/footer'); } } // МОДЕЛЬ function get_group($config, $offset){ $this->db->order_by("id", "desc"); if (isset($config['type'])) { $query = $this->db->get_where('group', array('type' => $config['type']), $config['per_page'], $offset); }else{ $query = $this->db->get('group', $config['per_page'], $offset); } return $query->result_array(); } ПРОБЛЕМА: фильтрация не срабатывает..., аякс успешно передает значение серверу, сервер его принимает, ошибок в работе скрипта тоже не наблюдается, но результата нет, все записи из таблица как выводились, так и выводятся. Очень прошу свежих взглядов и любых советов, как хороших так и плохих, потому как сам в тупике, и уже сломал голову( |
Цитата:
if (isset($_POST['type'])) и else за мелким исключением одно и тоже, странный подход к конфигурации. Проверить нужно что получает сервер в качестве параметра и сам запрос. |
Часовой пояс GMT +3, время: 07:11. |