Не отвечает через GET запрос php-скрипт из файла в Modx

Доброго дня всем! Помогите разобраться!
Проблема следующая.
Есть js-скрипт на базе Jquery UI (виджет autocomlete), по ajax идет запрос на autocomplete.php.
...
 $.ajax({
                        url: "путь/до файла/autocomplete.php",
                        dataType: "json",
                        data: {...
Код для файла autocomplete.php написан и протестирован в консоле Modx, и там всё работает.
А когда переносишь код в файл autocomplete.php, то GET запрос формируется, а файл autocomplete.php не отвечает, то есть на GET запрос ошибка 500.

Как сделать чтобы скрипт отвечал?
Jado
26 сентября 2019, 13:45
modx.pro
772
0

Комментарии: 7

Артем
27 сентября 2019, 13:21
0
код файла приложите к заметке
    Jado
    30 сентября 2019, 10:55
    0
    <?php
    $dsn = 'mysql:host=localhost;dbname=*******;charset=utf8';
    $xpdo = new xPDO($dsn, '********', '*******', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
    
    $locate = $_GET['locate'];
    $street = $_GET['street'];
    $house = $_GET['house'];
    $l = $modx->quote($locate);
    
    
    
    if (!empty($house)): 
        $q = "SELECT * FROM `modx_ac_connection` WHERE `locate` = $l AND `street` LIKE '%$street%' AND `house` LIKE '%$house%'";
        $re = $xpdo->query($q);
        while ($r = $re->fetch(PDO::FETCH_ASSOC)) {
            $result[] = $r['house'];
        }
        $result = array_unique($result);
        echo json_encode($result);
    
    else:
        $q = "SELECT * FROM `modx_ac_connection` WHERE `locate` = $l AND `street` LIKE '%$street%'";
        $re = $xpdo->query($q);
        while ($r = $re->fetch(PDO::FETCH_ASSOC)) {
            $result[] = $r['street'];
        }
        $result = array_unique($result);
        echo json_encode($result);
    
    endif;
      Артем
      02 октября 2019, 08:44
      0
      Добавьте в код вывод ошибок
      ini_set("display_errors",1);
      error_reporting(E_ALL);
      и смотрите в консоли браузера какой ответ приходит по запросу
        Jado
        03 октября 2019, 12:22
        0
        Включил вывод ошибок.
        Ошибка такая:
        Fatal error: Uncaught Error: Class 'xPDO' not found in /***/**/autocomplete.php
        Ругется вот на эту строку:
        <?php 
        $xpdo = new xPDO($dsn, '********', '*******', [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
        Судя по всему не хватает xPDO.
        Как подгрузить xPDO?
          Артем
          03 октября 2019, 12:31
          0
          почему не используете класс modx?

          xpdo находится здесь
          /core/xpdo/xpdo.class.php
            Jado
            03 октября 2019, 13:06
            0
            Спасибо.
            А есть какое-нибудь типовое решение для того, чтобы подтянуть все классы?
            С учётом того core вынесено за public_html
              Артем
              03 октября 2019, 13:20
              0
              подключай index.php
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    7