このコードのいくつかのバリエーションを試しましたが、コンソールにエラー メッセージが表示されずに行き詰まります。現時点では、Mike Dewar による Getting Started with D3.js からほとんど引用された、非常に簡単なはずです。私はそれを爆発させていると思ういくつかの変更を加えました(すみません、マイク、これは私の悪いことだと確信しています)。
まず、開くと動作する php ファイルがあります: {"name":1,"status":2,"url":3,"time":4,"day":5}
それをエコーするコードは「jsonphp.php」と呼ばれます:
<?php
$arr = array('name' => 1, 'status' => 2, 'url' => 3, 'time' => 4, 'day' => 5);
echo json_encode($arr);
?>
次に、それを参照し、(テストとして) 表に表示します。「d3test.htm」というファイルがあります
<!DOCTYPE html>
<html>
<head>
<meta charset = 'utf-8'>
<script src='d3.v2.min.js'></script>
<script>
function draw(data){
'use strict';
d3.select('body')
.append('ul')
.selectAll('li')
.data(data)
.enter()
.append('li')
.text(function(data){
return data.name + ': '+ data.status;
});
}
</script>
</head>
<body>
<script>
d3.json('jsonphp.php', draw);
</script>
</body>
</html>
jsonヘッダーの名前を変更したり、変数に沿って「描画」関数を取得しようとしたりするなど、いくつかのバリエーションを試しました(ええ、それがうまくいかないことはわかっていました)。ファイルは 'php' で終わりますか? エラーが返されないということは、それが機能していると考えているため、そうではない可能性があります。これは非常に簡単なはずであり、これを実行できれば、より複雑な出力を実行できることはわかっていますが、これは千マイルの旅の最初のステップにすぎません。ところで、IE 9 と Safari 5.1.7 でこれを実行しようとしましたが、同じ結果です。前もって感謝します!
補遺 12 月 5 : HTML ドキュメント内の jsonphp.php ファイルの長さを警告しようとしたところ、「未定義」になりました。ただし、拡張子がjsの別のテストファイルで試してみましたが、これ以外には何もありませんでした([{"a":"-1.14","b":"4.14"},{"a":"-0.13","b":"1.38"},{"a":"-4.19","b":"1.43"},{"a":"-0.21","b":"3.34"}])
。正しい番号(4)が返されました。また、テストを使用して、視覚化が正常に機能するようになりました。したがって、問題は、D3.js が php ファイルを好まないか、問題がないように見えても php ファイルに何か問題があることです。