Динамическое заполнение раскрывающегося списка из xhttp.open («Получить»);ответ - PullRequest
1 голос
/ 27 июня 2019

У меня есть локальный текстовый файл, который я пытаюсь заполнить выпадающим списком с этими данными. Я установил 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 Ответ

1 голос
/ 27 июня 2019

Вы должны разбить ваши данные на массив и затем добавить к выбору этот способ:

<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 = "";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...