我有一个包含图像数据的 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));