0

ヒートマップ データの応答を返す ajax 呼び出しがあります。

私が抱えている問題は、ヒートマップを新しいデータで更新するには、ajax 応答からのデータを使用して関数を呼び出す必要があることです。

コードは次のとおりです。

    <script type="text/javascript">
var interval = setInterval(function() {
$.ajax({
type: "POST",
url: "update_1.php",
data: {},
cache: false,
success: function(html){
    var response = eval("(" + html + ')');
    $('#checker').html(html);
if(response.success)
    {
heatmap.store.setDataSet(response);
    }
}
}); }, 10000);

</script>

setDataSet() によって呼び出される ajax 呼び出しからの戻りの例:

{max:30, data:[{ x: 480, y: 500, count: 27.00 },{ x: 250, y: 280, count: 26.00 },{ x: 480, y: 330, count: 21.00 },]}

eval() を使用して使用可能にしようとしましたが、機能していません。

足りないものはありますか?

ありがとう

4

2 に答える 2

0

おそらく最も簡単なことは、次を使用することです。

var interval = setInterval(function() {
    $.ajax({
        type: "POST",
        url: "update_1.php",
        data: {},
        dataType: 'json',
        cache: false,
        success: function(data){
            heatmap.store.setDataSet(data);
        },
        error: function(xhr, error){
            console.log(xhr); 
            console.log(error);
        }
    }); 
}, 10000);

ただし、JSON は有効である必要があります。有効でないと、暗黙のうちに失敗します。

キーを引用符で囲む必要があります: ここを確認してください: http://jsonlint.com

例えば { "max": 30, "data":[{ "x": 480, "y": 500, "count": 27.00 },{ "x": 250, "y": 280, "count": 26.00 },{ "x": 480, "y": 330, "count": 21.00 }]}

于 2013-07-22T21:35:42.967 に答える