【发布时间】:2014-08-22 16:36:13
【问题描述】:
我的 PHP 找到了一堆图片的 url。我希望能够在应用程序上显示它们。我正在使用 AJAX 来检索返回的数组。然后我试图解析它并将其放入一个 javaScript 数组中。然后我想用我的构建图像功能从它的 URL 中显示第一张图像。目前没有显示图像。我不确定我的问题出在哪里,我认为数组没有被解析,我什至不确定它是否在 php 中正确返回。
下面是我的 PHP。使用 JSON 编码并尝试返回该路径数组。
<?php
include("mysqlconnect.php");
$select_query = "SELECT `ImagesPath` FROM `offerstbl` ORDER by `ImagesId` DESC";
$sql = mysql_query($select_query) or die(mysql_error());
$data = array();
while($row = mysql_fetch_array($sql,MYSQL_BOTH)){
$data[] = $row['ImagesPath'];
}
echo json_encode( $data );
?>
这是回显并希望返回的想法。
["http://server/~name/folder/images/07-08-2014-1407418088.png","http://server/~name/folder/images/05-08-2014-1407252096 .png"]
这是我使用 AJAX 获取该数组并将其解析为 JavaScript 数组的脚本。
function importJson(str) {
if (str=="") {
document.getElementById("content").innerHTML="";
return;
}
if (window.XMLHttpRequest) {
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
} else { // code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status == 200){
alert("onreadystatechange");
var images = JSON.parse(xmlhttp.responseText);
for (var i = 0; i < images.length; i++) {
buildImage(images[i]);
}
}
}
xmlhttp.open("GET","http://server/~name/folder/content.php");
xmlhttp.send();
buildImage=function(src) {
var img = document.createElement('img');
img.src = src;
document.getElementById("content").appendChild(img);
}
}
window.onload = importJson();
</script>
第一张图片应该放在 div 内容中。
<body>
<div id="content"></div>
</body>
【问题讨论】:
-
这里的问题是尝试将 PHP 更改为 JSON 并正确解析它。我认为输出 JSON 消息和接收有困难。解析也可能比该示例复杂得多。
-
我相信我正在发送或接收整个 php 脚本而不仅仅是数组?
标签: javascript php arrays ajax json