Интересный момент сегодня заметил... Сформировал Ajax-запрос, получил от сервера JSON-ответ, пытаюсь его использовать в своих целях, но возникает проблемка... Там, где должны были числовые значения быть, на самом деле сидят обычные строки. Пример:
В javascript это очень важно, так как он более типизированный язык, чем php, и от типа данных и результат при сравнении может отличаться, и переменные разные методы будут иметь.
Я сначала подумал, что это у меня процессор не правильно обрабатывает данные и переводит числовые значения в строки, но оказалось, что это сам PDO так делает (при чем именно PDO, а не xPDO).
Это легко проверить, выполнив в консоли простой запрос:
На выходе я получаю вот такой результат:
То есть id содержит строку, а не число.
Решение нашлось такое:
Если выполнить его перед выполнением запроса, то данные приходят в нормальном виде.
Если кому такое тоже понадобится, и чтобы это заработало на всем сайте, можно в плагине на OnMODXInit прописать эту строчку, а можно в каком-нибудь своем компоненте в metadata.mysql.php прописать
Я обычно перепроверяю любое числовое значение уже на javascript: parseint()
Тоже верно, но вот это тоже на всякий случай учту для себя.