0

このコードのいくつかのバリエーションを試しましたが、コンソールにエラー メッセージが表示されずに行き詰まります。現時点では、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 ファイルに何か問題があることです。

4

1 に答える 1

1

PHP で Content-Type ヘッダーを設定してみてください。

header("Content-Type: application/json");

電話する前にjson_encode

于 2012-12-04T19:17:12.697 に答える