Checkbox dynamisch mit zwei Werten setzen

Hallo,

ich bracuhe mal Hilfe zum dynamischen Erstellen von Checkboxen.

Eine Tabelle hat in der ersten Spalte eine jeweils eine Checkbox, die, wenn sie angeklickt wird, beim Übersenden des Formulars den Wert 1 in die entsprechende Spalte der Tabelle schreibt.
Dies wird so realisiert, dass bei jeder Änderung (Submit) in allen Zeilen die 0 eingetragen wird und anschließend nur in den angeklickten Zeilen (Checkboxen) eine 1.

Nun gibt es eine Funktion zum Einfügen einer neuen Zeile. Hier soll ebenfalls gleich mit hilfe einer Checkbox der Wert 1 (bei checked) oder 0 (bei unchecked) übergeben werden, aber wie?

Die Javascript-Funktion sieht so aus:

var cell1 = row.insertCell(0);
var element1 = document.createElement(„input“);
element1.type = „checkbox“;
element1.name = ‚new[‘+new_row_counter+’][export_flag]’;
element1.value = „1“;
cell1.appendChild(element1);

danach folgen die andere Zellen.

Meine Idee war es nun, nach element1.name = …; eine if-Abfrage reinzusetzen, die überprüft, ob element1.checked == true oder nicht ist. Das funktioniert aber nicht :frowning:

Wie kann ich das realisieren, dass bei unchecked der Wert 0 in die DB geschrieben wird?

Danke im Voraus für jede Hilfe!

Die Javascript-Funktion sieht so aus:

var cell1 = row.insertCell(0);
var element1 = document.createElement(„input“);
element1.type = „checkbox“;
element1.name = ‚new[‘+new_row_counter+’][export_flag]’;
element1.value = „1“;
cell1.appendChild(element1);

Meine Idee war es nun, nach element1.name = …; eine
if-Abfrage reinzusetzen, die überprüft, ob element1.checked ==
true oder nicht ist. Das funktioniert aber nicht :frowning:

?? du setzt ein element1 selber und willst wissen ob es checked ist ? ich dachte entweder setzt du es checked oder unchecked , du erzeugst es doch selber ?

Wie kann ich das realisieren, dass bei unchecked der Wert 0 in
die DB geschrieben wird?

Danke im Voraus für jede Hilfe!

Und was hat JavaScript mit der Datenbank zu tun.
Irgentwas ist doch auf dem Server am laufen, vielleicht PHP z.b. , dann ist es PHP aufgabe abzufrgagen und einzutragen.

Noch ein rätzel was du willst ?

Die Javascript-Funktion sieht so aus:

var cell1 = row.insertCell(0);
var element1 = document.createElement(„input“);
element1.type = „checkbox“;
element1.name = ‚new[‘+new_row_counter+’][export_flag]’;
element1.value = „1“;
cell1.appendChild(element1);

was auch immer du es meinst, checkboxen values in javascript siehe
/t/javascript-checkbox-values-auslesen/285057

Die Javascript-Funktion sieht so aus:

var cell1 = row.insertCell(0);
var element1 = document.createElement(„input“);
element1.type = „checkbox“;
element1.name = ‚new[‘+new_row_counter+’][export_flag]’;
element1.value = „1“;
cell1.appendChild(element1);

Meine Idee war es nun, nach element1.name = …; eine
if-Abfrage reinzusetzen, die überprüft, ob element1.checked ==
true oder nicht ist. Das funktioniert aber nicht :frowning:

?? du setzt ein element1 selber und willst wissen ob es
checked ist ? ich dachte entweder setzt du es checked oder
unchecked , du erzeugst es doch selber ?

Ja, der User sieht eine Zeile mit leeren Feldern, die befüllen soll und zusätzlich soll er die Checkbox anklicken oder eben nicht.
Bis jetzt funktioniert das so, dass wenn er sie anklickt, der Wert 1 in die Datenbank geschrieben wird. Wenn er sie aber nicht anklickt und den Submit-Button klickt, wird NULL statt 0 in die Datenbank geschrieben.
Meine Frage war nun, wie kann ich erreichen, dass eine 0 geschrieben wird.

Wie kann ich das realisieren, dass bei unchecked der Wert 0 in
die DB geschrieben wird?

Danke im Voraus für jede Hilfe!

Und was hat JavaScript mit der Datenbank zu tun.
Irgentwas ist doch auf dem Server am laufen, vielleicht PHP
z.b. , dann ist es PHP aufgabe abzufrgagen und einzutragen.

Klar, drum herum läuft PHP, ich kann aber bisher noch nicht auf die unchecked checkbox der neuen Zeile reagieren :frowning:

Noch ein rätzel was du willst ?

1 Like

Leider ist dort nicht annhähernd etwas zu meiner Frage zu finden.

1 Like

Die Javascript-Funktion sieht so aus:

var cell1 = row.insertCell(0);
var element1 = document.createElement(„input“);
element1.type = „checkbox“;
element1.name = ‚new[‘+new_row_counter+’][export_flag]’;
element1.value = „1“;
cell1.appendChild(element1);

Meine Idee war es nun, nach element1.name = …; eine
if-Abfrage reinzusetzen, die überprüft, ob element1.checked ==
true oder nicht ist. Das funktioniert aber nicht :frowning:

?? du setzt ein element1 selber und willst wissen ob es
checked ist ? ich dachte entweder setzt du es checked oder
unchecked , du erzeugst es doch selber ?

Ja, der User sieht eine Zeile mit leeren Feldern, die befüllen
soll und zusätzlich soll er die Checkbox anklicken oder eben
nicht.
Bis jetzt funktioniert das so, dass wenn er sie anklickt, der
Wert 1 in die Datenbank geschrieben wird. Wenn er sie aber
nicht anklickt und den Submit-Button klickt, wird NULL statt 0
in die Datenbank geschrieben.
Meine Frage war nun, wie kann ich erreichen, dass eine 0
geschrieben wird.

Wie kann ich das realisieren, dass bei unchecked der Wert 0 in
die DB geschrieben wird?

Danke im Voraus für jede Hilfe!

Und was hat JavaScript mit der Datenbank zu tun.
Irgentwas ist doch auf dem Server am laufen, vielleicht PHP
z.b. , dann ist es PHP aufgabe abzufrgagen und einzutragen.

Klar, drum herum läuft PHP, ich kann aber bisher noch nicht

nein du verstehst HTML browser Javascript und PHP server nicht, es läuft nix drumherum . Das ist unsinn.

auf die unchecked checkbox der neuen Zeile reagieren :frowning:

du meinst nach absenden der Form soll das PHP nicht gesetzte werte auslesen ?

Der sin einer Checkbox ist aber , nur den wert zu senden der gesetzt wurde, nicht aber alle auswahl und ein checked .
Bei merhfach auswahl werden auch nur die werte gesendet die gesetzt wurden. Das macht der Browser, hat nix mit javascript oder mit php zu tun, das ist browser aufgabe.

Es ist also unlogisch auf dem server irgentws prüfen zu können was nicht angeklickt wurde, denn es ist nicht da und wird auch nicht gesendet.

Beispiel :
input name=checkmich type=„checkbox“ value=„eins“ checked
input name=checkmich type=„checkbox“ value=„zwei“
input name=checkmich[] type=„checkbox“ value=„drei“ checked

bzw
input name=checkmich[] type=„checkbox“ value=„eins“ checked
input name=checkmich[] type=„checkbox“ value=„zwei“
input name=checkmich[] type=„checkbox“ value=„drei“ checked

gesendet wird dann
?checkmich=eins&checkmich=drei

bzw
?checkmich[]=eins&checkmich[]=drei

also nur die werte die da sind, das impliziert das sie gecheckt wurden.

und ünrigens. PHP kann man zwar mit HTML mixen , aber das heist nur das alles was nicht php ist ausgegeben wird, es kann das php vom server aus nicht auf den browser gugen . Javascript läuft auf dem Browser , egal was man da ändert, das PHP hat da nix mit zu tun, das läuft nicht im browser. Du musst also damit vorlieb nehmen was der Browser sendet und das auswerten.

Noch ein rätzel was du willst ?

hallo skee.

warum setzt Du nicht einfach checked auf true?

var cell1 = row.insertCell(0);
var element1 = document.createElement(„input“);
element1.type = „checkbox“;
element1.name = ‚new[‘+new_row_counter+’][export_flag]’;
element1.value = „1“;

element1.checked=true

cell1.appendChild(element1);

gruß
klaus