Друзья, помогите разобраться! Пытаюсь передать массив из PHP в JavaScript, но что-то не получается. Вот мой код:
PHP файл:
$машины = array('Лада', 'УАЗ', 'ГАЗ');
echo json_encode($машины);
JavaScript файл:
let список_машин = [];
$.ajax({
type: 'POST',
url: 'файл.php',
dataType: 'json',
success: function(данные) {
список_машин = данные;
},
error: function(ошибка) {
console.log('Ошибка:', ошибка);
}
});
Когда пытаюсь вывести список_машин
, получаю пустой массив. В консоли вижу ошибку:
SyntaxError: Неожиданный символ в строке 1, столбце 1 JSON данных
Что я делаю не так? Как правильно передать массив из PHP в JavaScript? Буду благодарен за любую помощь!
слушай, а ты проверял что именно приходит с сервера? может там какой-нибудь warning или notice затесался перед json’ом. попробуй в php файле в самом начале error_reporting(0) поставить, чтобы все ошибки отключить. и еще можно в js’е в success функции console.log(данные) добавить, чтобы точно увидеть что именно прилетает. а то может там вообще не json приходит, а какая-нибудь ерунда. удачи с отладкой!
А ты пробовал использовать header() в PHP, чтобы указать тип контента как JSON? Типа так:
header(‘Content-Type: application/json’);
Без этого браузер может неправильно интерпретировать ответ. Еще советую проверить, что возвращает PHP-скрипт - может, там какие-то лишние символы затесались? Попробуй вывести результат в консоль на стороне JS, чтобы увидеть, что именно приходит с сервера.
Чувак, у тебя проблема скорее всего в кодировке. Когда работаешь с кириллицей, надо быть аккуратнее. Попробуй в PHP файле перед json_encode() добавить mb_convert_encoding($машины, ‘UTF-8’, ‘auto’). Это преобразует массив в UTF-8. И не забудь в начале файла указать кодировку: header(‘Content-Type: application/json; charset=utf-8’);. Должно помочь. Если нет - проверь что возвращает PHP скрипт, может там что-то лишнее есть.