2013-05-21 52 views
1

想從MySQL檢索記錄數據,並將其存儲到Javascript數組用於heatmap.js地圖數據格式爲:獲得MySQL數據,並將其存儲到Javascript數組

var testData = {max: 46, data: [{lat: 33.5363, lon:-117.044, value: 1},{lat: 33.5608, lon:-117.24, value: 1},..]}; 

現在我陷在這裏,我不知道如何從Jquery連接到我的var testData = new Array();,我該怎麼做才能解決這個問題?

(修訂版CORRECT CODE)

get_query.php

<?php 
require_once('./db_con.php'); 
$dbcon=new db; 


$query="SELECT (SELECT geo_lat FROM fun WHERE created_at <= DATE_SUB(NOW(), interval 1 minute) AS geo_lat," . 
     "(SELECT geo_long FROM fun WHERE created_at <= DATE_SUB(NOW(), interval 1 minute) AS geo_long"; 

$result = mysqli_query($dbcon,$query); 
$data = array(); 

    while($row= mysqli_fetch_assoc($result)){ 

    $data[] = array("lat"=>$row["geo_lat"], "lon"=>$row["geo_long"], "value"=>1); 
    $post_data = json_encode(array('max' => 46, 'data' => $data)); 
    } 
    echo $post_data; 
?> 

my_data.js從here基於:

jQuery.extend({ 
getValues: function(url) { 
    var result = null; 
    $.ajax({ 
     url: url, 
     type: 'get', 
     dataType: 'json', 
     async: false, 
     success: function(data) { 
      result = JSON.stringify(data); 
     } 
    }); 
    return result; 
} 
}); 

var testData = $.getValues("get_query.php"); 

由於Orangepill和Chrislondon。

+4

whoot' while(true){'? –

+1

爲什麼你有'while(true){'? –

+0

一旦數組按照你想要的方式構建,'json_encode'應該只調用一次。 –

回答

2

所以你的問題是如何將你的jQuery連接到你的var data,這樣我就不會陷入PHP中的無數問題碼。在你成功的功能,你可以設置var data像這樣:

var data = new Array(); 

$(function() { 
    $.ajax({ 
     type:  "post", 
     url:  "get_query.php", 
     data:  $(this).serialize(), 
     dataType: "json" 
}).done(function(response) { 
    data = response; 
}); 
+0

謝謝,我將在修復php代碼後對其進行測試。 – y45

+0

嗨,克里斯,如何測試這段代碼,我用heatmap.js實現,但它仍然不起作用。 – y45

+0

我之前沒有使用過heatmap.js,但是看着他們的代碼嘗試這樣做:heatmap.store.setDataSet(response);完成函數的內部。 – chrislondon

3
while($row= mysqli_fetch_assoc($dbcon,$result)){ 
    $data[] = array("lat"=>$row["geo_lat"], "lon"=>$row["geo_long"], "value"=>1); 
} 
echo json_encode($data); 

應該找到你正在尋找的東西。當構建json_encode的數據只是使用原生php類型而不是json時,請讓json_encode處理該問題

+1

謝謝,當我執行PHP腳本時,頁面導致這個'[]',這是正確的嗎?對於我缺乏知識感到抱歉。 – y45

+0

當我添加'echo $ data'時在代碼結束時,我得到'PHP警告:mysqli_query()期望參數1'和'PHP警告:mysqli_fetch_assoc()期望恰好1個參數'。 – y45

+0

嗨,現在的工作。感謝您的幫助 – y45

0

您的JSON似乎不正確:

var testData = {max: 46, data: [{lat: 33.5363, lon:-117.044, value: 1},{lat: 33.5608, lon:-117.24, value: 1},..]}; 

應與周圍的按鍵報價

var testData = {"max": 46, "data": [{"lat": 33.5363, "lon":-117.044, "value": 1},{"lat": 33.5608, "lon":-117.24, "value": 1},..]}; 

既然你在使用json_encode() PHP我會假設PHP輸出正確。但是,也許你現在只是爲了測試目的而使用固定(錯誤)的字符串?

相關問題