PHP から Javascript に JSON を返す際に問題が発生しています。以下は、JSON を作成するための私の PHP です。
$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 に戻すと未定義/null として返されます。以下は、ajax 呼び出しを含む 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 + ')');
なぜこれを元に戻せないのかについて、どんな助けも大歓迎です!