【发布时间】:2015-04-13 09:00:32
【问题描述】:
这是我的 PHP 代码以 json 格式获取,它可以正常工作并显示 json 数据,因为我已经检查过了。但当我希望向用户显示相同的内容时不显示。
<?php>
include('connect.php');
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");
$result = $conn->query("SELECT filmName, url, filmYear FROM table");
$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "[") {$outp .= ",";}
$outp .= '{"Film":"' . $rs["filmName"] . '",';
$outp .= '"Path":"' . $rs["url"] . '",';
$outp .= '"Year":"'. $rs["filmYear"] . '"}';
}
$outp .="]";
$conn->close();
echo($outp);
?>
在这里,我将 url 以 getfilms.php 的形式传递给用户,它具有上述代码。
<!DOCTYPE html>
<html>
<head>
<title></title>
<link href="site.css" rel="stylesheet">
</head>
<body>
<nav id="nav01"></nav>
<div id="main">
<h1>films</h1>
<div id="id01"></div>
</div>
<script>
var xmlhttp = new XMLHttpRequest();
var url = "getfilms.php";
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
myFunction(xmlhttp.responseText);
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(response) {
var obj = JSON.parse(response);
var arr = obj.records;
var i;
var out = "<table><tr><th>Film</th><th>Path</th><th>Year</th></tr>";
for (i = 0; i < arr.length; i++) {
out += "<tr><td>" +
arr[i].Film +
"</td><td>" +
arr[i].Path +
"</td><td>" +
arr[i].Year +
"</td></tr>";
}
out += "</table>"
document.getElementById("id01").innerHTML = out;
}
</script>
</body>
</html>
【问题讨论】:
-
我建议您不要自己构建 json,而是为此目的使用 json_encode。 $outp[] = $ 行; echo json_encode($outp);
-
@ 两次 ejr,因为我是新手,如何实现上述代码?这也适用于移动应用程序?
-
是的,我已经把它贴在这里了:pastebin.com/TNAt65zU 我认为 javascript 也应该适用于移动应用程序。您是在构建原生应用还是网络应用?
-
@ 两次 ejr 工作正常,但我将如何获取与用户相同的内容,因为我拥有上述 html 文件?因为目前它只是以 json 文件的形式出现
-
注释掉这一行:“var arr = obj.records”。将 'var obj =' 替换为 'var arr =' - 您针对 obj 变量的未定义索引(obj 上的 json 数组中不存在记录)