抱歉,我是网络开发的新手。我最近一直在玩一些JSON对象,并且已经在W3school网站上使用了一些例子 - ' http://www.w3schools.com/json/json_example.asp。'
该示例从MYSQLi db中检索数据并将其注入JSON对象。我一直在使用这个例子创建一个动态网站,但我的问题是我不确定你是否需要数据库来存储数据。可以直接从服务器检索JSON对象吗?
服务器的响应被解析为JSON对象。即var = JSON.parse(响应)
<!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);
?>
答案 0 :(得分:0)
我认为最合适的问题是,#34;此类数据/应用程序需要数据库吗?&#34;或者,&#34;我应该将db用于此类应用吗?&#34;从技术上讲,不,你不需要一个数据库来存储和检索来自服务器的信息,但是根据你想要实现的目标,数据库可能是最明智的解决方案。
答案 1 :(得分:0)
你试过json_encode($value)
吗? http://php.net/manual/en/function.json-encode.php
这将数组编码为json对象,当然 - 您可以将json数据存储在任何类型的文件中,而不仅仅存储在数据库中
答案 2 :(得分:0)
该示例使用MySQL数据库来检索数据,但您可以简单地回显您自己的数据,以便使用JSON示例来测试您的AJAX:
<?php
$array = array(
"Key" => "value",
"Foo" => "Bar"
);
$jsonData = json_encode($array);
echo ($jsonData);
?>
然后,您可以通过执行以下操作检索Javascript myFunction
中的值:
arr.Foo; //would return Bar
数据库仅用于存储长期数据,本教程的功能部分不需要它。