【发布时间】:2014-12-14 21:07:33
【问题描述】:
抱歉,我是 Web 开发的新手。我最近一直在玩一些 JSON 对象,并且一直在使用 W3school 网站上的一些示例 - 'http://www.w3schools.com/json/json_example.asp。
该示例从 MYSQLi db 检索数据并将其注入 JSON 对象。我一直在使用这个例子来创建一个动态站点但是我的问题是我不确定你是否需要一个数据库来首先存储数据。 JSON对象可以直接从服务器获取吗?
来自服务器的响应被解析为 JSON 对象。即 var = JSON.parse(response)
<!DOCTYPE html>
<html>
<head>
<title>XMLHTTPREQUESTEXAMPLE</title>
</head>
<body>
<p id="id01"></p>
<script>
var xmlhttp = new XMLHttpRequest();
var url = "//http:URL";
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
myFunction(xmlhttp.responseText);
}else{
document.getElementById("id01").innerHTML = "Server not responding";
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
function myFunction(response) {
var arr = JSON.parse(response);
var i;
var out = "<table><tr><th>Name</th><th>Job Title</th><th>Room No</th><th>Tel Ext</th><th>Email</th></tr>";
for(i = 0; i < arr.length; i++) {
out += "<tr><td>" +
arr[i].Name +
"</td><td>" +
arr[i].JobTitle +
"</td><td>" +
arr[i].RoomNo +
"</td></tr>"
arr[i].TelExt +
"</td></tr>"
arr[i].Email +
"</td></tr>";
}
out += "</table>"
document.getElementById("id01").innerHTML = out;
}
</script>
</body>
</html>
来自 W3 学校网站的服务器上的示例 php 脚本。
$conn = new mysqli("myServer", "myUser", "myPassword", "Northwind");
$result = $conn->query("SELECT CompanyName, City, Country FROM Customers");
$outp = "[";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
if ($outp != "[") {$outp .= ",";}
$outp .= '{"Name":"' . $rs["CompanyName"] . '",';
$outp .= '"City":"' . $rs["City"] . '",';
$outp .= '"Country":"'. $rs["Country"] . '"}';
}
$outp .="]";
$conn->close();
echo($outp);
?>
【问题讨论】:
-
欢迎来到 Stack Overflow!如果您只能发布代码的相关部分,它可能会帮助您更快地获得答案(除非您的问题确实需要整个部分)。我对这种语言有些陌生,所以很难说。您可能想查看有关帮助的站点导览 --> 站点导览,您可以了解有关该站点的更多信息,并为此获得徽章!
-
你没有提到这是否有效,即使它似乎有效。如果它有效,则表明您可以从 PHP 脚本中获取数据,而 PHP 脚本仅输出 JSON。如何创建 JSON(是否通过 DB)是您的选择。
-
不,它不是,因为 php 脚本是该站点的示例。我在问你是否需要创建一个数据库。你不能在服务器本身上存储一个 json 对象吗?
标签: php ajax json mysqli xmlhttprequest