Отправить массив PHP в Javascript - PullRequest
2 голосов
/ 03 мая 2011

/////// ОБНОВЛЕНИЕ - У меня уже есть библиотека jquery, включенная в мой код, поэтому, если с jquery это проще, чем javascript, дайте мне знать, пожалуйста.

ОК.Здесь есть множество вопросов, которые отправляют массив php в php, но только 1, который совпадает с моим.К сожалению, я не понял ответа.

Итак, на данный момент у меня есть ассоциативный массив в php.Затем я использовал этот код,

echo json_encode($this->_inputErrors);

Я не знаю, почему я его использую, просто много упоминалось в других подобных примерах.Затем он отправляет данные в javascript (через ajax), и если я делаю этот код,

alert(requestText);

, я получаю длинную строку текста.Как я себе представляю.

Так как же тогда в javascript вернуть текст обратно в массив?

Или есть ли лучший способ сделать это?

Большое спасибо за ваше время,

Крис

Ответы [ 5 ]

5 голосов
/ 03 мая 2011
var o = JSON.parse( requestText );

Включите это (https://github.com/douglascrockford/JSON-js/blob/master/json2.js) для поддержки старых браузеров.

3 голосов
/ 03 мая 2011

requestText - это строка в формате JSON.Вам нужно разобрать строку в объект.

Вы можете использовать JSON.parse для преобразования строки в JSON.

var obj = JSON.parse(requestText);

Если в вашем браузере нет JSON, включитеэто:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

0 голосов
/ 09 марта 2013

Когда-то раньше я сталкивался с такой же проблемой. Проверьте мое решение:)

array.html

$(document).ready(function(e){

    //This array is where I'll receive the PHParray
    var js_array=new Array();

    $("#btn").click(function(e){
             $.ajax({
                type:    'POST',
                 url:     'vector.php',
                 cache:   false,
                 success: function(data){

                    js_array=data;
                   //I use this "for" to print each array item into a div called "data".
                    for(var i=0;i<js_array.length;i++){
                         $("#data").append("<p>"+js_array[i]+"</p>");
                    }

                 },
                 dataType: 'json'
             });                  
    });                    

});

vector.php

<?php

$array = array(1,2,3,4,5,6);

/*As you, I use "json_encode" to serialize the array
echo json_encode($array);

?>

Я надеюсь, что это может помочь (:

0 голосов
/ 03 мая 2011

Самый простой способ преобразовать эту длинную строку текста в Javascript - это использовать eval:

alert(eval('(' + requestText + ')'));
0 голосов
/ 03 мая 2011

Вам необходимо установить тип возвращаемого значения JSON

или, если вы используете jQuery, вы можете использовать метод jQuery getJSON () , чтобы получить объект JSON из URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...