如何通过xhttp.open获取多个设备?

时间:2019-06-21 07:24:43

标签: javascript html ajax variables get

我在arduino上有自己的网站, 我可以得到1 x的值,但是如果我确实复制相同的代码并将其更改为id,则我需要检索第二个设备不起作用,此时只有1个设备可以工作...所以,如果我删除2个设备中的1个代码有效... 问题是我需要通过这种方式再添加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 :(得分:0)

如果多次写入相同的函数名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');