簡體   English   中英

從ajax php調用創建2D javascript數組

[英]creating 2D javascript array from ajax php call

我有一個帶有圖像數據的mysql表。

我想檢索圖像數據並推入javascript數組。

我想將兩個字段放入數組中,它們是image_ref,而image_name我知道我需要一個2D數組,我需要使用ajax和JSON從數據庫中檢索數據。

我不知道如何完成這個。

我知道我需要調用帶有JSON ajax調用的php頁面

JS:

var imagesArray[];

$.getJSON("get_image_data.php")
    .done(function(data) { 
  /*THIS IS WHERE I NEED HELP---*/
});         

get_image_data.php頁面

include("connect.php"); 
$query = mysql_query("SELECT * FROM images WHERE live='1' ORDER BY insertDate DESC");
while($row=mysql_fetch_array($query){
     echo json_encode(array("a" => $row['image_ref'], "b" => $row['image_name'])); 
}

我已經突出顯示了在將返回的數據導入stockImages數組時需要幫助的地方。

有誰能告訴我光明?

提前致謝

通過在循環中多次調用json_encode() ,您將創建大量奇異的JSON位。 您應該以創建和傳輸一個傳輸對象為目標,如下所示:

include("connect.php"); 
$query = mysql_query("SELECT * FROM images WHERE live='1' ORDER BY insertDate DESC");
$images = array(); 
while($row=mysql_fetch_array($query){
    $images[] = array("a" => $row['image_ref'], "b" => $row['image_name']); 
}
echo json_encode($images);

這將為您提供一個JSON數組,您可以通過它在您的客戶端Javascript循環。

實際上,PHP是錯誤的,因為在JS上你將直接在“數據”中擁有你需要的數組。

您的PHP代碼應如下所示:

$query = mysql_query("SELECT * FROM images WHERE live='1' ORDER BY insertDate DESC");
$result = array();
while($row=mysql_fetch_array($query){
    $result[] = array("a" => $row['image_ref'], "b" => $row['image_name']); 
}
echo(json_encode($result));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM