p_v_l
@p_v_l
Viam supervadet vadens

MODX REVO AJAX-фильтр: как задать условие для выборки по TV-параметрам?

Здравствуйте!
Использую ajax-фильтр из примера ilyaut.ru/tips-and-tricks/simple-ajax-filter-usin....

Но не могу разобраться как при фильтрации задавать условие where для TV-параметра, чтобы значения выводились меньше либо равны, а не полностью точное совпадение.
Ниже код плагина.
<?php
if ($modx->context->key == 'mgr' || empty($_SERVER['HTTP_X_REQUESTED_WITH']) || $_SERVER['HTTP_X_REQUESTED_WITH'] != 'XMLHttpRequest') return;
switch ($_POST['action']) {
    case 'filter':
        $output = array('success' => false, 'message' => '');
        
        // Проверяем, что hash получен и параметры pdoPage существуют
        if (isset($_POST['hash']) && !empty($_POST['hash'])
            && isset($_SESSION['pdoPage'][$_POST['hash']])
            && !empty($_SESSION['pdoPage'][$_POST['hash']])) {

            $hash = (string) $_POST['hash'];
            
            // Указываем только ТВ, доступные для фильтрации
            $tvs = array('price');
            
            // Наполняем условие выборки
            $where = array();
            foreach ($tvs as $tv) {
                if (isset($_POST['fields'][$tv]) && $_POST['fields'][$tv] !== '') {
                      
                        $where[$tv] =$_POST['fields'][$tv];
                }
            }
            
            // Добавляем это условие в параметры pdoPage "на лету"
            $_SESSION['pdoPage'][$hash]['where'] = $where;
            
            $output['message'] = $where;
            $output['success'] = true;
        } else {
            $output['message'] = 'Error';
        }
        echo $modx->toJSON($output);
        die();
        break;
    default:
        break;
}


Буду признательна за помощь!
  • Вопрос задан
  • 46 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы