2015-05-08 4 views
-4

Я пытаюсь получить переменную массива PHP и сохранить ее в Javascript. Следующее - это то, что у меня есть сейчас.Retrieve PHP Array в Javascript

array.php

$cars = array("Volvo", "BMW", "Toyota"); 
echo json_encode($cars); 

jsarray.php

var temp_array = new Array(); 
    $.ajax({ 
     type: "POST", 
     url: "array.php", 
     cache: false, 
     async: false, 
     dataType: 'json', 
     success: function(data){ 
      temp_array=data; 
     }, 
     error: function(jqXHR, textStatus, errorThrown) { 
     console.log(textStatus, errorThrown); 
     } 

    }); 

Я не могу получить значение массива PHP.

Как исправить эту проблему?

Редактировать: console.log (temp_array) только возвращает []

Изменить 2: добавлена ​​"ошибка" и console.log (textStatus, errorThrown).

Сообщение об ошибке

SyntaxError: JSON.parse: unexpected character at line 1 column 1 of the JSON data 
return window.JSON.parse(data + ""); 
+0

Что вы имеете в виду, вы не можете получить значение массива PHP? Вы получаете какие-либо ошибки? Массив имеет несколько значений, или вы говорите, что обратный вызов 'success' не срабатывает? –

+0

вместо записи echo put return json_encode ($ cars); exit(); и попробуйте –

+0

Что вы подразумеваете под «Я не могу получить значение массива PHP»? Является ли результат вашего вызова ajax нулевым? Вы получаете ошибки? Что вы видите как вывод, если вы console.log temp_array – muglio

ответ

0

Вы JSON кодирования массива на стороне сервера, но вы никогда не декодировать его обратно к массиву стороне клиента. This может помочь.

+0

не должен 'dataType: 'json',' обрабатывать это для нас уже? пожалуйста, исправьте меня, если я ошибаюсь – plasticbullet

+0

Я мог ошибаться, но я думал, что 'data' будет содержать json. Попробуйте распечатать данные, чтобы узнать, что вы получаете. Или вы можете отказаться от этого метода и скопировать то, как это делает пример. Это довольно легко реализовать. –

0

ваш PHP скрипт должен послать правильные заголовки HTTP, чтобы сказать, что посылает содержимое JSon, как это (перед вторя):

$cars = array("Volvo", "BMW", "Toyota"); 
header('Content-Type: application/json'); 
echo json_encode($cars); 
+0

Я добавил эту строку кода, но все равно не получаю ее. – plasticbullet