Я отправляю некоторые данные через AJAX в файл PHP. Это о параметрах фильтра. В любом случае, я отправляю это так:
filter[0][data][type] string
filter[0][data][value] automobiles
filter[0][field] product
filter[1][data][type] numeric
filter[1][data][value] 6000
filter[1][field] price
Это выше взято из консоли FireBug. Затем в PHP:
$filter = $_POST['filter'.$i];
if (is_array($filter)) {
for ($i=0;$i<count($filter);$i++){
switch($filter[$i]['data']['type']){
case 'string' :
// I'm doing my select from database based on that and so on
Итак, перевод этого будет:
«Получите мне все записи из базы данных: хмм, давайте проверим фильтры ... Я получаю первый тип фильтра, который является« строкой », который должен быть применен к столбцу mysql с именем» product "... Так что я ищу значение" автомобили "там ... Но я еще не закончил, второй фильтр ссылается на числовой фильтр для столбца" цена "из базы данных. взяв его значение и добавив его в запрос. Поэтому я в итоге выберу все автомобили, цена которых превышает 6000.
Пока все хорошо. Проблема в том, что мой способ получения данных изменился, и я больше не могу отправлять свои данные в этом формате. Новый формат - это URL, который выглядит следующим образом:
filter[0][field]=prodct&filter[0][data][type]=string&filter[0][data][value]=automobiles&filter[1][field]=price&filter[1][data][type]=numeric&filter[1][data][value]=6000
Я могу сделать разнесение по этому символу "&" и получить массив ... Я могу многое сделать ... Проблема в том, что я не знаю, как настроить свой скрипт построения запросов, чтобы работать с полученными данными такого типа ... Так что я могу сделать "switch ($ filter [$ i] ['data'] ['type']) {" снова ...
Есть идеи по изменению кода?
Спасибо!