2011-11-13 90 views
1

我正在通過PHP傳遞2個字段的SQL到JavaScript。我已經閱讀了很多關於如何創建多維JavaScript數組的教程。我感到困惑的是如何從PHP到JavaScript代碼。我已經看到了一些關於如何將php數據轉換爲javascript的教程,但沒有介紹如何使用2維來實現。php數組到2d的Javascript數組

我的第一個掛斷是,如果我創建一個多維數組,我需要在我聲明java數組之前計算我的sql數據中的記錄數?

更新:

我將數據轉換爲JSON格式,如下所示。有沒有辦法讓我把所有的內容打印到網頁上,以便我可以看到它們,然後縮小顯示的內容?

更新三:

代碼:

mysql_connect("localhost", "bikemap", "pedalhard") or die(mysql_error()); 
mysql_select_db("test") or die(mysql_error()); 
$data = mysql_query("SELECT * FROM gpsdata"); 
$new_row = array(); 
$new_column = array(); 
while($info = mysql_fetch_array($data)){ 

    foreach($info as $row_num => $row) 
{ 
     $thisItem = $row; 
     $new_row[] = $thisItem; 
    } 
    array_push($new_column = $new_row); 

} 
$json = json_encode($new_column); 
echo $json;  
?> 

工作代碼:

$data = mysql_query("SELECT * FROM gpsdata");  
$aData = array(); 
while($row = mysql_fetch_assoc($data)) 
    $aData[$row['idgpsdata']] = array($row['userID'],$row['date'],$row['lat'], $row['longi'], $row['alt']); 


$json = json_encode($aData); 
echo $json; 
+3

可以縮短當前的代碼:'VAR scriptAr = <?php echo json_encode($ lines); ?>;' – ThiefMaster

+0

@LorenZimmer是的,你正在使用mysql_fetch_array不正確。這一次只能得到一行。編程語言不知道表格,所以你一次抓一行。您需要實際構建2D數組。 – Matt

+0

更新...上面的代碼返回所有值但不是密鑰。對我來說奇怪的是,它插入@Laith Shadeed的java例程時會創建重複的值。 –

回答

0

第一填寫一個PHP數組,這比建設字符串JavaScript數組更加容易。然後 - 正如ThiefMaster所說的評論 - 使用JSON來製作javascript數組。

+0

如果我在之間添加可變的$ json,是否也可以在外部使用? –

+0

是的,它可以用在腳本的任何PHP部分。 – Yogu

0

在PHP中,你可以使用JSON PECL extension

<?php 
$arr = array(1=>array(3,4), 
       2=>array(4,5)); 
$json = json_encode($arr); 
echo $json; 
?> 

輸出

{"1":[3,4],"2":[4,5]} 

在Javascript中

var obj = JSON.parse('{"1":[3,4],"2":[4,5]}'); 
for(var i in obj){ 
    for(var j in obj[i]) { 
     console.log(obj[i][j]); 
    } 
} 

JSON.Parse是蛤蚧(火狐一樣),跨瀏覽器的JavaScript JSON解析檢查jQuery.parseJSONhttps://stackoverflow.com/search?q=json+parse+javascript

在PHP/jQuery的樣品實施,將是這樣的:

json.php

$arr = array(1=>array('Name', 'Age'), 
       2=>array('Fares','18')); 
$json = json_encode($arr); 
echo $json; 

json.html

<html><head></head> 
<body> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script> 
<script> 
$.getJSON('json.php', function(data) { 
    var items = []; 

    $.each(data, function(key, val) { 
    items.push('<li id="' + key + '">' + val + '</li>'); 
    }); 

    $('<ul/>', { 
    'class': 'my-new-list', 
    html: items.join('') 
    }).appendTo('body'); 
}); 
</script> 
</body> 
</html> 
+0

感謝您的建議。在我原來的問題中,你會看到我已經用一些代碼來將sql結果轉換爲json,但是我沒有完全成功。任何想法我輸入錯誤。我有一種感覺,我沒有正確地將信息傳遞給數組。 –