Сообщение от greenrow
|
Ниже я постарался поподробнее описать мою реализацию обработки значений из множественной фильтрации.Код рабочий.
|
Ниже как и раньше все в куче, котлеты, мухи. ) Может лучше начать с того, что вы подразумеваете под понятием "фильтрация"? Ведь:
error='нет активных проектов за текущий день в выбранном городе';
req_rez={get_thisdate_and_loc:'ok',city:'location' };
это никак не ошибка, отсутствие данных в базе по неким критериям, это просто нет их. А запрос на выборку по этим критериям, можно назвать условно фильтрацией, а можно просто выборкой по условиям.
А если в результате запроса запрашиваемые данные или их нет, это не суть понятия фильтрации, это результат, ответ да/нет. А если это подразумевается под фильтрацией, то стоит ли конкретизировать "нет" до мелочей, если выборка производится действительно по множественным параметрам, есть ли в этом смысл?
Я так и не понял причем тут щелчки и триггеры, если у вас банальная задача - отправить набор параметров серверу. А, если, получить ответ "есть/нет" также возложен на клиента, то он даваться должен после запроса:
$.getJSON(..., function(a) {здесь})
А проверки на клиенте, это проверка введенных значений, как собственно и на сервере, и что для сервера является постоянной и обыденной задачей, и в РНР есть для этого набор фильтров.
Если же вам все таки нужна детализация "нет", то однозначно на это можно дать ответ только в том случае, если в результате запроса будут записи, значения которых по всем запрашиваемым параметрам содержат NULL. Например, если таблица содержит поля A, B, C и D, и по этим параметрам производится выборка по условиям, то можно ли ответить "нет данных", если возвращена запись в которой только по полю В не найдено совпадения, а по полям A, C, D есть соответствия, то есть вернет:
A=>1, B=>NULL, C=>2, D=>3
Нет проблем проверить все ключи на наличие данных не только для одной записи, но и целого набора строк, например:
$B = array_diff(array_column($query, 'B'), [null]) ? 'Есть записи' : 'Нет записей'
, где $query массив данных результата запроса (на клиенте нужно проверять при этом наличие/отсутствие свойства в объекте). Если даже каждая запись набора $query в данной колонке будет содержать null, значит ли это что данные не найдены? А если это поле вернет строки и со значениями, и NULL, как в этом случае трактовать? Вы вот что ожидаете:
Object { id="20", user_id="31", name="colors", ещё...}
id "20"
user_id "31"
name "colors"
ava "/uploads/31/temp/080116_546.png"
date "2016-01-08"
nickname "test1"
category [Object { name="Фотография"}]
name "Фотография"
likes "0"
И что для вас критерий "нет" - отсутствие какого либо значения в наборе у каждой сущности, или же есть ли в ответе сущности у которых все значения набора пусты?
Поясните сперва это, можно и без всякого кода, словами, как это делается когда составляется ТЗ.