chromo23
Neues Mitglied
Hallo,
ich bastele immer noch an meiner dynamisch generierten Seite für eine microcontroller firmware.
Hintergrund: https://www.html.de/threads/uebersicht-aus-json-generieren.60684/#post-407689
Dort hatte mir ja @Sempervivum schon sehr geholfen.
Nun habe ich diese Seite um Buttons und Slider erweitert. Wenn ein Gerät die phrase "slider" beinhaltet, dann wird ein ein Slider generiert:
Mit "onchange" wird eine Funktion gestartet, die die Daten dem Microcontroller übergibt (das funktioniert sehr gut):
Um die Werte direkt beim Sliden zu sehen benutze ich folgenden Script:
Wenn ich nur einen Slider habe funktioniert der Script auch sehr gut
Habe ich mehrere slider geht das so natürlich nicht mehr.
Ich habe versucht nach dieser Anleitung vor zu gehen: https://stackoverflow.com/questions/48134220/javascript-updating-multiple-slider-innerhtml/48137573
Bin aber kläglich gescheitert.
Ich würde mich freuen wenn jemand mir helfen könnte.
Im Anhang der ganze Code als Kontext
ich bastele immer noch an meiner dynamisch generierten Seite für eine microcontroller firmware.
Hintergrund: https://www.html.de/threads/uebersicht-aus-json-generieren.60684/#post-407689
Dort hatte mir ja @Sempervivum schon sehr geholfen.
Nun habe ich diese Seite um Buttons und Slider erweitert. Wenn ein Gerät die phrase "slider" beinhaltet, dann wird ein ein Slider generiert:
Javascript:
else if ((sensor.TaskName).toLowerCase().includes("slider")) { //if a task contains "slider" it generates an input slider
html2 += '<div class="sensorset">' + '<input type="range" min="0" max="1023" value="' + sliderValue + '" id="slider1" class="slider" onchange="updateSlider(this.value,\'' + utton + '\')" oninput="isitTime()">' + '<div class="sensors" style="align-items: flex-end;"">' + '<div style="font-weight:bold;font-size: 14pt;">' + sensor.TaskName + '</div>' + '<div id="sliderAmount" style="text-align: right;">' + sliderValue + '</div>' + '</div>';
}
Mit "onchange" wird eine Funktion gestartet, die die Daten dem Microcontroller übergibt (das funktioniert sehr gut):
Javascript:
<script>
function isitTime() { //oninput of slider calls this function to prevent refereshing the page while sliding
window.isittime = 0;
}
function updateSlider(slideAmount, utton) {
var xhr = new XMLHttpRequest();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
}
}
xhr.open('get', 'control?cmd=event,' + utton + 'event=' + slideAmount, true); //generating the event+values vor all the slider
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
xhr.send();
window.isittime = 1;
}
</script>
Um die Werte direkt beim Sliden zu sehen benutze ich folgenden Script:
Wenn ich nur einen Slider habe funktioniert der Script auch sehr gut
Javascript:
<script>
function sliderStart() {
var slider = document.getElementById('slider1');
slider.addEventListener('input', sliderChange);
}
function sliderChange() {
var sliderDiv = document.getElementById("sliderAmount");
sliderDiv.innerHTML = this.value;
console.log(this.value);
}
</script>
Ich habe versucht nach dieser Anleitung vor zu gehen: https://stackoverflow.com/questions/48134220/javascript-updating-multiple-slider-innerhtml/48137573
Bin aber kläglich gescheitert.
Ich würde mich freuen wenn jemand mir helfen könnte.
Im Anhang der ganze Code als Kontext
Anhänge
Zuletzt bearbeitet: