Olga

Olga

С нами с 17 февраля 2019; Место в рейтинге пользователей: #1995
Olga
14 июня 2019, 11:37
0
Ребят, нет предложений/подсказок, как все-таки прописать условие <= для where?
Olga
12 июня 2019, 19:36
0
Все работает, спасибо!

А можете подсказать как изменить 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('n_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;
}
И как добавить в фильтр еще один TV, для которого WHERE будет выполняться не через равенство, а через LIKE?
Olga
11 июня 2019, 09:39
0
Спасибо большое, попробую!