从xhttp.open(“ Get”)动态填充下拉列表;回应

时间:2019-06-27 06:09:55

标签: javascript html ajax

我有一个本地文本文件,我试图用该数据填充选择下拉列表。我已经安装了IIS来克服本地限制,并且过去了CORS。我已经使用xhttp方法从位于IIS服务器上的文件中检索文本文件数据。我可以在div中显示它,如下面的代码所示。我正在尝试将这些数据放入一个下拉列表中,以方便地获取价值。例如,如果用户选择“ Part1”,我将像从我特别声明的任何其他下拉列表中一样,从1中得到一个整数值。如果可能的话,我希望使用javascript解决方案,因为那是我大部分时候一直在使用的代码。

我在Google上寻找了没有真正匹配的解决方案。

<body onload="pList();">
<div id="PartList"></div>
<script>
function pList() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("PartList").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "http://127.0.0.1:8080/PartList.txt", true);
  xhttp.send();


}
</script>

1 个答案:

答案 0 :(得分:1)

您必须将数据拆分为一个数组,然后以这种方式添加到选择中:

<script>
function pList() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      var options = this.responseText.split(delimiter);

      var select = document.getElementById("PartList");
      for (var i = 0; i < options.length; i++) {
          var option = document.createElement("option");
          option.text = options[i];
          option.value = i;
          select.add(option);
      }
    }
  };
  xhttp.open("GET", "http://127.0.0.1:8080/PartList.txt", true);
  xhttp.send();


}
</script>

如果要在加载前清除选择,请使用以下方法:

document.getElementById("PartList").innerHTML = "";