Задать вопрос
Amina779
@Amina779

Как передать массив из php в js и получить значение?

Добрый день, столкнулась с проблемой что при передачи массива из php в js не получается потом получить элемент этого массива.

Вот код PHP
$key = array_keys($_POST);
$nameTable = $key[0] . "_chat";

$query = $connect->query("SELECT message, sender, recipient FROM `$nameTable` ORDER BY id DESC LIMIT 30"); 
$arr = $query->fetchAll();

echo json_encode($arr);


Это код js
$.ajax({
                url: '/updateMessages',
                type: "POST",
                data: params['id'],
                success: function(result) {
                		alert(result);
                    }
              });


Плучается такой результат
5d820aaef1d53916228191.png

Хотела получить элемент с помощью alert(result[0]);
Но выдает только одну букву а не элемент
  • Вопрос задан
  • 2949 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 3
rammtw
@rammtw
Press CTRL+S to save project
Используйте сперва JSON.parse(result);
Ответ написан
Комментировать
glaphire
@glaphire Куратор тега PHP
PHP developer
Что именно возвращает alert(result[0])? Какое конкретное значение?
Сделайте JSON.parse, чтобы распарсить ответ и там искать реальный элемент или укажите в ajax dataType:"json", чтобы ajax знал, ответ какого формата ожидает от сервера
Ответ написан
Комментировать
@Enj0y
Либо в JS делайте
JSON.parse();
Либо на PHP укажите заголовок
header('Content-Type: application/json; charset=utf-8');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@BATPYIIIKOB
PHP, JS
Всё верно. Вам возвращается первый элемент строки. Т.к. JSON это по сути строка как тип данных, а нулевой элемент в строке это есть первый символ. Для того, чтобы работать с JSON как с массивом - его необходимо преобразовать в массив (распарсить). О чём выше вам и написали :). Обмен между JS и PHP также реализуется с помощью преобразований в строку (JSON,XML,serialize string и т.д.). Не забывайте после передачи данных их распарсить. Единичные элементы (не массивы, не объекты и т.д..) можно передавать как есть, но может потребоваться преобразование типов.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы