我在根据我的ID获取特定数据时遇到问题。 这是我的主要HTML。
<div class="container">
<div class="row">
<div class="col-md-12">
<button id="btn">Button</button>
<br>
<div id="id01"></div>
</div>
</div>
</div>
这是我的主要js
var btn=document.getElementById("btn");
btn.addEventListener("click", function(){
var ourRequest = new XMLHttpRequest();
var url = "url.../incident";
contentType="applicaton/json; charset=utf-8";
method="GET";
dataType= "json";
ourRequest.onreadystatechange=function() {
if (this.readyState == 4 && this.status == 200) {
myFunction(this.responseText);
}
}
ourRequest.open("GET", url, true);
ourRequest.send();
});
function myFunction(response) {
var arr = JSON.parse(response);
var out = "<table>";
for(i = 0; i < arr.length; i++) {
out += "<tr><td>" +
arr[i].Address +
"</td><td><a href='lista.html?id="+arr[i].ID+"'>" +
arr[i].ID +
"</a></td><td>" +
arr[i].Category +
"</td></tr>";
}
out += "</table>";
document.getElementById("id01").innerHTML = out;
}
这只会显示三个数据。
这是我的lista.html
<div class="container">
<div class="row">
<div class="col-md-12">
<div id="id02">
</div>
</div>
</div>
这是我的lista.html的js。
var ourRequest = new XMLHttpRequest();
var url = "url../incident?id=";
contentType="applicaton/json; charset=utf-8";
method="GET";
dataType= "json";
ourRequest.onreadystatechange=function()
{
if (this.readyState == 4 && this.status == 200) {
myFunction(this.responseText);
}
}
ourRequest.open("GET", url, true);
ourRequest.send();
function myFunction(response)
{
var arr = JSON.parse(response);
var out = "<table>";
out +="<tr><td>" +
arr.Address +
"</td><td>" +
arr.CaseID +
"</td><td>" +
arr.Category +
"</td><td>" +
arr.Date +
"</td><td>" +
arr.Description +
"</td><td>" +
arr.ID +
"</td><td>" +
arr.InputDate +
"</td><td>" +
arr.Latitude +
"</td><td>" +
arr.Longitude +
"</td><td>" +
arr.ReportedBy +
"</td><td>" +
arr.Subcategory +
"</td><td>" +
arr.Time +
"</td></tr>"
out += "</table>";
document.getElementById("id02").innerHTML = out;
}
所以,当我点击那个arr [i] .ID时,它应该将我发送给具有特定ID和特定数据的lista.html。 例如,如果我点击ID = 1,则网址看起来像lista.html?id = 1,但没有显示。
答案 0 :(得分:0)
如果您发送请求的api
,只需将id传递给请求网址即可var url = "url?id={your id here}"
答案 1 :(得分:0)
在你的表中,你必须使用arr.Address而不是response.Address,因为arr是解析的json对象。
您可以使用console.log查看您所需的数据是否确实存在:
function myFunction(response) {
var arr = JSON.parse(response);
console.log(arr);
}
您不需要使用jQuery读取位置href,因为您已经知道您发送的请求的ID!
答案 2 :(得分:0)
所以我的错误是这样而不是:
var url = "url../incident?id=";
我应该写:
var url = "url../incident?id="+getQueryVariable("id");
在我的js for lista.html
的末尾写下这个函数 function getQueryVariable(variable)
{
var query = window.location.search.substring(1);
var vars = query.split("&");
for (var i=0;i<vars.length;i++) {
var pair = vars[i].split("=");
if(pair[0] == variable){return pair[1];}
}
return(false);
}