Как получить несколько устройств через xhttp.open? - PullRequest
0 голосов
/ 21 июня 2019

У меня есть веб-сайт на моем arduino, я могу получить 1-кратное значение, но если я скопирую тот же код и изменим его на идентификатор, мне нужно получить второе устройство, которое не работает, тогда работает только 1 устройство... поэтому, если я удаляю 1 из 2 кодов, это работает ... И дело в том, что мне нужно добавить еще 15 устройств таким образом, и только 1 работает в то время ... что я могу сделать сейчас?

Я пытался использовать "," или "&", не повезло

Это то, что я сделал, отображается только 1 ... код работает нормально, когда я удаляю 1 из них, появляется другой...

function getData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("Mac").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "readMac", true);
  xhttp.send();
}


//GET LIVE SSID
function getData() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById("SSID").innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", "readSSID", true);
  xhttp.send();
}

здесь отображается устройство

<tr>
    <td><i class='fas fa-chalkboard w3-text-blue w3-large'></i></td>
    <td>MAC.</td>
    <td><span id="Mac">0</span></td>
</tr>

<tr>
    <td><i class='fas fa-chalkboard w3-text-blue w3-large'></i></td>
    <td>SSID.</td>
    <td><span id="SSID">0</span></td>
</tr>

1 Ответ

0 голосов
/ 21 июня 2019

Если вы напишите одно и то же имя функции getData() несколько раз, оно всегда будет перезаписано. Таким образом, вы можете изменить имя (что было бы ужасно) или (лучше) использовать функцию с параметрами. Что-то вроде getData(id)

function getData(id, blubber) {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (this.readyState == 4 && this.status == 200) {
      document.getElementById(id).innerHTML =
      this.responseText;
    }
  };
  xhttp.open("GET", blubber, true);
  // if above line is always with "read"+id you could also do
  // xhttp.open("GET", "read"+id, true); // and remove "blubber" parameter
  xhttp.send();
}


getData('Mac', 'readMac');
getData('SSID', 'readSSID');
...