spilden01

Рейтинг
24
Регистрация
25.04.2013
kostyanet:
Этот диагноз и был поставлен выше - у вас денормализованная бд. В теории вы не имеете права делать вот так && genre = "комедия", потому что текст в поле genre может быть любой, например комедия, коммедия, комедтя, камедия, comedy и тп.

Ну хорошо, а откуда вы берете список жанров, чтобы нарисовать все эти инпуты?

есть доп поле, в нем написано: приключения, фэнтези, комедия

Текст в поле вписывается юзером при добавлении новости

Если перейти по адресу site.ru/xfsearch/приключения/ то можно увидеть новость с этим текстом.

Если перейти по адресу site.ru/xfsearch/приключения&фэнтези или site.ru/xfsearch/приключения&&фэнтези то будет почему то только одна новость, или новости с данным текстом, то есть, этот запрос применяется как будто только для одной новости.

kostyanet:
А где у него жанры хранятся? В файлах? Ну какая разница, все то же самое.

Никаких файлов, обычный текст в доп. поле.

с бд то зачем? без нее ведь можно

asteroid:
spilden01, добавьте атрибут alt для удобства, чтобы не парсить текст.

<input type="checkbox" onclick="filter(this)" alt="комедия">Комедия
<input type="checkbox" onclick="filter(this)" alt="драма">драма

function filter(e) {
var a = [];
$(e).parent().find('input').each( function() {
if ( this.checked ) {
a.push( $(this).attr('alt') );
}
});
var xfield = a.join('|'); // <- ВОТ ТУТ ПОПРОБОВАТЬ '||', '&&', '&', '+'
if ( xfield != '' ) {
ShowLoading("Идет сортировка");
$.get('/xfsearch/'+encodeURIComponent(xfield)+'/', function(data){
HideLoading("Завершено");
$("#dle-content").html(data);
});
}
}

Разделять слова подошло &&, спасибо! В вашем примере стоит onclick, можно ли как то сделать, чтобы если галки нет, то фильтр не применяется.

---------- Добавлено 19.08.2015 в 14:03 ----------

Оба кода, работают, но, если выбрать например сначала драма а потом комедия, то ничего не отображается. Если наоборот то отображается как надо.

Если бы я знал как его получить((

Пусть будет например: сайт.ру/xfsearch/драма%111%комедия

---------- Добавлено 19.08.2015 в 00:08 ----------

LovelAss:
Если вы выбираете сразу два чекбокса, а в запросе прописано условие AND, то разумеется ничего не будет отображаться.

Да, два чекбокса. В запросе and вроде бы нет.

Не срабатывает ajax фильтрация(

---------- Добавлено 18.08.2015 в 19:19 ----------

Для какой это версии jquery?

Сейчас стоит 1.8.2, возможно в этом проблема.

---------- Добавлено 18.08.2015 в 20:58 ----------

Убрал $(document).ready и заработало. Только вот одна проблема.

Есть 2 новости, в 1 новости в пункте жанр: драма. Во 2 новости жанр: комедия. Выбираю чекбокс драма, показывает новость с жанром драма, выбираю чекбокс комедия, и ничего не отображается. То есть 2 разных жанра и 2 разных новости, не фильтрует, чекбоксы как будто только для одной новости фильтруют(

---------- Добавлено 18.08.2015 в 21:13 ----------

если отметить два чекбокса, даже с одинаковыми значениями, то вообще ничего не находит(

igor3310:
А в аяксе each перебор всех чекбоксов надо сделать и все значения в обработчик - там возможно прийдется запрос исправить

можно пример?

спасибо.

с return false сам уже догадался)

url мульти запроса, нет, я не могу сделать мультивыбор, и запроса поэтому нету(

Dinozavr:
ваш вопрос звучит примерно так:
я тут нарисовал кнопку "Бабло!". вам всего лишь надо сделать так, чтобы она работала...

Царское сравнение, что тут скажешь)

Уже сам разобрался.

Я использую модуль searchfield для dle. Сам фильтр есть, нужно только скрипт ajax, не более.

1 234 5
Всего: 41