1. Kelly - 10 Сентября, 2011 - 02:10:51 - перейти к сообщению
Добрый день. У меня возникла сложность с такой вещью как "фильтр" как допустим в интернет магазинах. Подскажите примеры реализации если не сложно. Через поиск найти сам не могу потому-что не знаю как это на самом деле называется. Буду благодарен за любую помощь
2. LIME - 10 Сентября, 2011 - 09:55:23 - перейти к сообщению
да очень просто делается
при выборе допустим чекбокса цвет "красный"
в строку запроса добавляем к "WHERE" еще одно условие допустим "AND `color`='red'"
при выборе допустим чекбокса цвет "красный"
в строку запроса добавляем к "WHERE" еще одно условие допустим "AND `color`='red'"
3. Kelly - 11 Сентября, 2011 - 12:12:32 - перейти к сообщению
Насколько я понял в WHERE проверяем IFом существование допустим той же переменной color и если она есть то добавляем ее в условие ?
4. Slavenin - 12 Сентября, 2011 - 00:00:59 - перейти к сообщению
я делал так, при выборе какого-либо фильтра js идет опрос всех доступных фильров со значениями
CODE (javascript):
скопировать код в буфер обмена
скопировать код в буфер обмена
- function mas_filtr()
- {
- pkd = document.getElementById('i_pkgd').value;
- sts = document.getElementById('i_status').value;
- num = document.getElementById('i_number').value;
- cont = document.getElementById('i_cont').value;
- drv = document.getElementById('i_driver').value;
- date = document.getElementById('i_date_waiting').value;
- param = '';
- (pkd == 'all') ? param += ' pkgd like \'%%\'' : param += ' pkgd = \'' + pkd + '\'';
- (sts == 'all') ? param += ', status like \'%%\'' : param += ', status = \'' + sts + '\'';
- (num == 'all') ? param += ', num_car like \'%%\'' : param += ', num_car = \'' + num + '\'';
- (cont == 'all') ? param += ', num_container like \'%%\'' : param += ', num_container = \'' + cont + '\'';
- (drv == 'all') ? param += ', driver like \'%%\'' : param += ', driver = \'' + drv + '\'';
- (date == 'all') ? param += ', date_waiting like \'%%\'' : param += ', date_waiting like \'' + date + '%\'';
- sendAnsServ('search.php?filtr=' + param, '3');//функция ajax
- }
затем на строне сервера все это собирлось в
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- function filtrSearch($param)
- {
- $sql = "SELECT a.ID, c.name as stat, num_car, num_container, driver, date_waiting, a.date_chek, b.name as name FROM t_voyage as a
- LEFT JOIN t_pkgd as b
- ON a.pkgd = b.ID
- LEFT JOIN t_status as c
- ON a.status = c.ID ";
- {
- $sql .= " WHERE " .$param[0];
- }
- {
- $i = 0;
- while($param[$i])
- {
- if($i == 0)
- {
- $sql .= " WHERE " .$param[0];
- }
- else
- {
- $sql .= " AND " .$param[$i];
- }
- $i++;
- }
- }
- $sql .= " GROUP by date_waiting DESC";
- //дальше запрос отправлялся в базу и разбирался
- }