Как обрабатывать массив, возвращающийся из AJAX-вызова?

#php #javascript #ajax #arrays

#php #javascript #ajax #массивы

Вопрос:

Я пытаюсь обработать массив, возвращающийся из ajax-вызова. Моя текущая ситуация заключается в том, что нажимается кнопка, и при нажатии она запускает ajax-вызов. Вот фрагмент PHP после вызова ajax..

 function count_total() {
    $count = get_count();
    if ($count == 0) {
        $count = 1; 
    }
    $total = get_total();
    $response = array('count' => $count, 'total' => $total);
    echo $response;
    exit;
}
  

Хорошо, теперь эта переменная $ response передается обратно на сторону JS, и если я оповещу переменную, очевидно, что она скажет «Массив». Итак, мой вопрос в том, как я могу работать с этим массивом? Я пытаюсь получить ключ / значение?

Или я не могу передать ему массив таким образом?

Есть идеи?

Ответ №1:

измените свое echo на это.

 echo json_encode($response);
  

и затем вместо предупреждения об ответе, проанализируйте его с помощью библиотеки синтаксического анализа json, подобной этой.

Тогда у вас будет настоящий объект javascript, а не массив, потому что вы используете ассоциативный массив.

Ответ №2:

PHP не отправляет обратно сам массив, только слово ‘Array’. Он может отправлять обратно только обычный текст / HTML (или файлы, если вы путаетесь с заголовками).

Рассмотрите возможность использования JSON или эквивалентного метода, который возьмет массив и переведет его в текстовую форму для восстановления в JavaScript, или создайте свой собственный.

Например, вы могли бы повторить «count = 12; total = 254» из PHP и использовать функцию JavaScripts split(), чтобы разбить его обратно на части.