Доброго времени суток, уже третьи сутки бьюсь над казалось бы просто задачей, но разобраться все не как не получается..
И так, по порядку:
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();
}
ПРОБЛЕМА: фильтрация не срабатывает..., аякс успешно передает значение серверу, сервер его принимает, ошибок в работе скрипта тоже не наблюдается, но результата нет, все записи из таблица как выводились, так и выводятся.
Очень прошу свежих взглядов и любых советов, как хороших так и плохих, потому как сам в тупике, и уже сломал голову(