如何将输入框连接到ajax调用以获取json或xml

时间:2017-03-20 09:44:45

标签: jquery html json ajax xml

我想创建一个搜索栏,可以从URL获取数据作为xml或json然后解码它并显示我想要的特定部分。但主要的是我还想连接集成在url中的输入字段值,以便它可以根据输入获取数据。任何帮助....提前谢谢你

这是一个简单的w3schools代码,用于从xml文件中获取数据。我刚刚添加了一个输入标记,并希望它作为文件名中的参数传递...就像文件名是" cd_catalog.xml",它将从" cd_catalog.xml中获取数据q =关键字&#34 ;.这里的关键字是输入字段值

<!DOCTYPE html>
<html>
<style>
table,th,td {
  border : 1px solid black;
  border-collapse: collapse;
}
th,td {
  padding: 5px;
}
</style>
<body>

<h1>The XMLHttpRequest Object</h1>
<input type="text" name="search" id="search">
<button type="button" onclick="loadDoc()">Get my CD collection</button>
<br><br>
<table id="demo"></table>

<script>
function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      myFunction(this);
    }
  };
  xhttp.open("GET", "cd_catalog.xml", true);
  xhttp.send();
}
function myFunction(xml) {
  var i;
  var xmlDoc = xml.responseXML;
  var table="<tr><th>Artist</th><th>Title</th></tr>";
  var x = xmlDoc.getElementsByTagName("CD");
  for (i = 0; i <x.length; i++) { 
    table += "<tr><td>" +
    x[i].getElementsByTagName("ARTIST")[0].childNodes[0].nodeValue +
    "</td><td>" +
    x[i].getElementsByTagName("TITLE")[0].childNodes[0].nodeValue +
    "</td></tr>";
  }
  document.getElementById("demo").innerHTML = table;
}
</script>

</body>
</html>

来源:https://www.w3schools.com/xml/tryit.asp?filename=tryajax_xml2

0 个答案:

没有答案