从 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));