• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

[GELÖST] mit Schleife Checkboxen ankreuzen - Werte aus Datenbank

Calvinstefan

New member
Hallo Leute!

Derzeit versuche ich mich an etwas Javascript und habe als Neuling auf dem Gebiet natürlich gleich einige Probleme.
Schön, dass es auch zu diesem Thema ein deutsches Forum gibt!

Also, hier mein erstes Problem, für das ich keine eigene Lösung finden konnte:

Ich habe auf einem Formular vier Checkboxen. Diese Checkboxen übergeben ihre Werte 0 oder 1 an jeweils ein eigenes Textfeld. Jedes Textfeld ist an ein Datenbankfeld gebunden. Dieses speichert den Checkboxwert 0 als <leer> und den Wert 1 als <X> ab. Das brauche ich, um den Wert in einem Word-Formular verwenden zu können.

Das Schreiben der Werte in die Datenbank gelingt. Allerdings gelingt es mir nicht die Checkboxen wieder anzuhaken, wenn das Formular erneut aufgerufen wird.
Das an die jeweilige Checkbox gebundene Textfeld erhält aus der Datenbank den korrekten Wert. Aber wie setze ich jetzt die entsprechende Checkbox auf angehakt?

Die Abfrage muss dynamisch sein. Wenn also noch eine weitere Checkbox hinzukommt, dann muss das einfach möglich sein, diese ebenfalls abzufragen.

Ich hatte folgendes versucht:
Code:
function chbxSetze1Oder0() {
    var wert1 = 'falscher_preis';
    var wert2 = 'fehlende_unterlagen';
    var wert3 = 'falsche_menge';
    var wert4 = 'fehlende_unterschrift';
    var i = 1;
    if (["wert" + i] != '') {
        if (jr_get_value(("wert" + i)) == 'X') {
            (jr_set_value('chbx_' + (["wert" + i])) == '1');
        }
        i = i + 1;
    }
}

Die Schleife soll beim Laden des Formulars abprüfen, ob in dem Textfeld 'falscher_preis' ein X gesetzt ist, oder nicht.
Ist ein X gesetzt, dann soll die entsprechende Checkbox 'chbx_falscher_preis' angehakt werden.

Habt ihr eine Idee, wie ich dieses Vorhaben "richtig" umsetzen könnte?

Danke!!

Gruß,
Stefan.
 
Zuletzt bearbeitet von einem Moderator:
Du hast da einen Denkfehler. ["wert" + i] wertet sich nicht zum Inhalt der Variablen aus, sondern zu einem Array mit dem Inhalt "wert" + i. Auch ist es nicht besonders elegant, da für alles eine neue Variable zu machen. Wenn die Funktionen jr_get_value und jr_set_value so funktionieren, wie du meinst, wäre mein Vorschlag:
Code:
function chbxSetze1Oder0(){
	['falscher_preis', 'fehlende_unterlagen', 'falsche_menge', 'fehlende_unterschrift'].forEach(function(name){
		if (name && jr_get_value(name) === 'X'){
			jr_set_value('chbx_' + name) = '1'; //Diese Zeile ist meiner Meinung nach auch falsch, da du den Value der Checkbox nicht setzen willst, sondern den checked-Status. Aber das kommt darauf an, wie intelligent diese Funtion ist
		}
	});
}
 
Hallo!

Vielen Dank für Deine Antwort und den Code!
Scheinbar ist die Funktion nicht intelligent genug. Die Checkboxen werden nicht angehakt :-( ...
Oder ... es liegt wohl eher an mir, denn mit
Code:
jr_set_value('beleg_falsch','0')
funktioniert es in der Browserkonsole.
Ich moddel das eben mal in Deinem Code um ... ...
Code:
function chbxSetze1Oder0(){
	['falscher_preis', 'fehlende_unterlagen', 'falsche_menge', 'fehlende_unterschrift'].forEach(function(name){
		if (jr_get_value(name) == 'X') {
			jr_set_value('cbx_' + name, '1');
		}
	});
}

Tataaaaa ... so funktioniert's!! :)

Vielen Dank für Deine Hilfe!!

Gruß,
Stefan.
 
Zurück
Oben