We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 24707
    • 16 Posts
    С помощью плагина ManagerManager создаю свой тип TV параметра.
    В нем есть зависимые select.
    В данный момент я зарание подгружаю все данные, а хотелось бы использовать для этого ajax (index-ajax.php)
    Пробовал в папке снипет, создать свой снипет ajax.
    <?php
    require_once(MODX_MANAGER_PATH . ’/includes/protect.inc.php’);
    define(’MODX_API_MODE’, true);
    include_once(MODX_MANAGER_PATH.’/includes/document.parser.class.inc.php’);
    $modx = new DocumentParser();

    $modx->db->connect();
    $modx->getSettings();

    $action = (int) $_REQUEST[’action’];
    $razdel = (isset($_REQUEST[’razdel’]))? (int) $_REQUEST[’razdel’]: 17; //id раздела
    $podrazdel = (isset($_REQUEST[’podrazdel’]))? (int) $_REQUEST[’podrazdel’]: 0; //id подраздела

    $result = array();
    switch($action) {
    case 0:
    $result = array("1"=>"test1","2"=>"test2");
    //echo json_encode($result);
    echo $modx->toJSON($result);
    break;
    }
    ?>
    Потом с помощью Jquery отправлю запрос ajax (GET). Запрос уходит, на index-ajax.php параметр q указывает на файл моего снипета к примеру assets/snippets/ajax/my_ajax.php
    В ответ получаю:
    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource:
    « `` is not numeric and may not be passed to makeUrl() »
    Прошу помочь
      • 24707
      • 16 Posts
      С половиной разобрался, данные на сервер уходят, в таблице изменяются, только вот ответ мне надо получать в формате JSON. Ставлю dataType: "json", в сниппете пишу
      $result = array("1"=>"test");
      echo json_encode($result);

      Ответ приходит строкой {"1":"test"}, выглядит прямо как строка json, но только почемуто это не json. Смотрю firebug.
        • 9085
        • 630 Posts
        Quote from: Redduck at Apr 06, 2011, 06:05 PM

        С половиной разобрался, данные на сервер уходят, в таблице изменяются, только вот ответ мне надо получать в формате JSON. Ставлю dataType: "json", в сниппете пишу
        $result = array("1"=>"test");
        echo json_encode($result);

        Ответ приходит строкой {"1":"test"}, выглядит прямо как строка json, но только почемуто это не json. Смотрю firebug.

        1. выглядит как попытка присвоить переменной с именем "1" значение ’test’ - всё ли верно?
        $result = array("test"=>"test"); 


        2. (дополнительно, если после 1-го исправления всё будет также плохо)
        header('Content-type: application/json; charset=utf-8');
        header('Cache-Control: no-cache');


        3.. будем посмотреть дальше wink
          Правильно заданный вопрос повышает вероятность получения нужного ответа.
          Что-то не работает? Загляните в лог ошибок!
          Есть проблема? "Локализуйте" её!
          Ответы на большинство вопросов по MODx | MODx RTFM | API Evo Revo | галопом по Европам Азиям smiley wikibooks(ru) Ditto(en) | Wayfinder e-book | Заметки и о MODx