У меня проблема с возвратом JSON из PHP в Javascript. Ниже мой PHP для создания JSON:PHP json_encode to Javascript undefined/null
$environment[] = array('id' => $env, 'adjacencies' => $hostnames);
foreach($hostnames as $hostname) {
$environment[] = array('id' => $hostname, 'name' => $hostname, 'data' => array());
}
return json_encode($environment);;
Когда я распечатайте json_encode среды в текстовый файл, он возвращается, как:
[{"id":"Dev","adjacencies":["tb23","tbwag","tbvg","tbut"]},{"id":"tb23","name":"tb23","data":[]},{"id":"tbwag","name":"tbwag","data":[]},{"id":"tbvg","name":"tbvg","data":[]},{"id":"tbut","name":"tbut","data":[]}]
кажется, что это печать должным образом, но когда я верните его в Javascript, чтобы он возвращался как undefined/null. Ниже Javascript с вызовом АЯКС:
var ajax = new AJAX();
var args = "id=" + $("#apps").val() + "&env=" + node.id + "&nocache=" + (new Date()).valueOf();
ajax.connect("POST", "http://" + window.location.hostname + "/project/graph/host", args, function(json) {
var output = '';
for (property in json) {
output += property + ': ' + json[property]+'; ';
}
alert(output);
});
Я, очевидно, пробовал много разных вещей, чтобы получить его, чтобы распечатать, но не везло. В PHP я пробовал json_last_error и возвращался как «0», а это значит, что в структуре JSON нет проблемы.
В конце концов, я хотел бы использовать следующую команду в JavaScript, чтобы продолжать строить свой график:
var hostNodes = eval('(' + json + ')');
Любая помощь приветствуется, почему я не могу получить это, чтобы вернуться!
Где $ env и $ hostnames? Его нет. Я изменю свой ответ, если вы действительно просто забыли упомянуть об этом, и это не проблема. – Jonast92
Эти переменные работают нормально, поэтому я их оставил; они создаются в другой функции. Для всех интенсивных целей в этом примере они могут быть жестко закодированы. – ad2387
PHP работает отлично, вы, очевидно, ошибаетесь в javascript. – Jonast92