Nur als Ergänzung: fetch() statt XMLHttpRequest.
function updateOutput(element) {
// HTTP-Anfrage senden, element.checked-Prüfung direkt in URL-Bau
fetch('esp-outputs-action.php?action=output_update&id=" + encodeURIComponent(element.id) + "&state=' + (element.checked ? "1" : "0"))
.then(function (response) {
// wird ausgeführt, sobald irgendeine Antwort vom Server eintrudelt
if (response.ok) {
// kein Fehler, Serverantwort als Text holen
return response.text();
}
// HTTP- und Netzwerkfehler ignoriert dieses Beispiel geflissentlich
})
.then(function (text) {
// wird ausgeführt, sobald komplette Serverantwort als Text zur Verfügung steht
console.log(text)
});
}