ESP8266 Webserver, Checkboxen?

Moin, wiedermal ein kleines Problem,
Ich habe einen ESP8266 Webserver, läuft perfekt, kann per Buttons und Slider “Werte” ändern, der ESP tut dann anhand der Eingaben seinen Dienst. Funktioniert soweit super.
Nun hätte ich gern noch “dynamisch” erzeugte Checkboxen. (dynamisch lassen wir erstmal bei Seite) :slight_smile:

mein Code, im oberen Teil die Script Funktion

webpage+="function onClickHandler(el){\r\n";
webpage+="if(el.checked){\r\n";
webpage+="server = '/a_box?n=' + \"On\";\r\n";
webpage+="} else {\r\n";
webpage+="server = '/a_box?n=' + \"Off\";}\r\n";
webpage+="request = new XMLHttpRequest();\r\n";
webpage+="request.open('ChkBox', server, true);\r\n";
webpage+="request.send(null);\r\n";
webpage+="}\r\n";

dann im HTML Teil

webpage+="<tr><td colspan=\"2\">\r\n";
webpage+="<script type=\"text/javascript\">\r\n";
webpage+="for(i = 1; i <= 6; i++) {";
webpage+="document.write(\'<input type=\"checkbox\" name=\"i\" id=\"i\" value=\"1\" onchange=\"onClickHandler(this)\"/>\'); }";
webpage+="</script>";
webpage+="</td></tr>\r\n";

Ok, die Checkboxen werden erzeugt, wenn ich eine anklicke bekomm ich On bzw. Off angezeigt im Serial Debug…also funktiert das ja grundsätzlich erstmal.

Mein Problem, die Sache mit dem Namen=“i” und id=“i”…das geht garnicht, i ist irgendwie keine Variable?? sondern Text i
Und beim Request soll i auch dabei sein, also Bsp. 4On nicht nur On, ich muss ja wissen welche geklickt wurde.

Ist bestimmt nur etwas an der Schreibweise verkehrt, ich find es nicht, On und OFF Super, i also Numerierung und Rückgabe der Nummer geht nicht.

Danke Heiko

hi,

erstens: wenn Du i in anführungszeichen setzt, ist es ein text, und keine variable.

zweitens: darf (meines wissens) in javascript ein variablenname nicht mit einer ziffer beginnen, wenn Du aber die zählvariable i als variablennamen nimmst, passiert genau das. Du mußt den variablennamen als zb cb mit angehängter zählvariable nehmen. also in diesem fall als cb1 bis cb6.
sollte mit "cb" + i gehen (mußte probieren...)

gruß stefan

puh, irgendwie steh ich schon immer auf Kriegsfuß mit diesem Java, ich raff es einfach nicht.

Ich hab jetzt probiert und probiert, 1 Stunde, nun hab ich erstmal auf HTML Basis ein brauchbares Ergebnis. So gehts jetzt.

function handleClick(cb) {
  alert("Clicked = " + cb.name + cb.id + cb.checked);
}


<script>
for(var i = 1; i <= 6; i++){
document.write('<input type="checkbox" name="box"'+ i + ' id='+ i + ' value="0" onclick="handleClick(this)";>' + i + ' '); 
}
</script>

nun nach Arduino…diese Hochkommas ’ und " machen mich alle

Danke Heiko

Java und Javascript haben außer den 4 Buchstaben am Anfang der Bezeichnung absolut nichts miteinander zu tun.

Wenn Dich das schon nervt, dann solltest Du mal in einer Programmiersprache, die nur ' als Begrenzer für Zeichenkettenliterale (z.B. Delphi/Turbo Pascal) Code für eine Datenbank, die ebenfalls ' als Begrenzer hat (z.B. ORACLE) schreiben.
Als Schmankerl oben auf noch ein ' im Literal eingeben, lesen und wieder schreiben.

Vorher ist nicht von nerven zu reden.

Gruß Tommy

Java und Javascript haben außer den 4 Buchstaben am Anfang der Bezeichnung absolut nichts miteinander zu tun.

das weiß ich !

Zum Rest kann ich nur sagen, wenn man es nicht jeden Tag macht (programmieren) und dazu wie ich noch einige andere Proggrammiersprachen so halb beherrscht, dann kommt man schonmal schnell durcheinander und ist manchmal wegen eines falschen ' einfach genervt weil man es nicht findet oder immer wieder überließt.....

Grüße Heiko

gab es da nicht ein script was den html in arduino übersetzt?