Anzahl Radion Buttons von MySQL füllen und Auswerten

Aragon

Mitglied
Guten Morgen @LL,
ich bin auf der Suche nach einer Hilfestellung für folgendes Problem:
Ich möchte eine variabla Anzahl von Radion Button erstellen, die vaus einer MySQL Abfrage generiert werden (habe ich bereits, funktioniert).
Wenn ich jetzt aber abfragen möchte, ob und welcher Radio Button geklickt wurde und einen Alert-Fenster ausgeben möchte, komme ich nicht weiter. Wenn ich feste Radio Button erstelle, geht es problemlos.

Hier der jetzige Code:
if((document.form1.Niederlassung[0].checked!=true) && (document.form1.Niederlassung[1].checked!=true) && (document.form1.Niederlassung[2].checked!=true) && (document.form1.Niederlassung[3].checked!=true) && (document.form1.Niederlassung[4].checked!=true) && (document.form1.Niederlassung[5].checked!=true) && (document.form1.Niederlassung[6].checked!=true) && (document.form1.Niederlassung[7].checked!=true) && (document.form1.Niederlassung[8].checked!=true) && (document.form1.Niederlassung[9].checked!=true) && (document.form1.Niederlassung[10].checked!=true) && (document.form1.Niederlassung[11].checked!=true) && (document.form1.Niederlassung[12].checked!=true) && (document.form1.Niederlassung[13].checked!=true) && (document.form1.Niederlassung[14].checked!=true) && (document.form1.Niederlassung[15].checked!=true) && (document.form1.Niederlassung[16].checked!=true) && (document.form1.Niederlassung[17].checked!=true) && (document.form1.Niederlassung[18].checked!=true) && (document.form1.Niederlassung[19].checked!=true) && (document.form1.Niederlassung[20].checked!=true) && (document.form1.Niederlassung[21].checked!=true)&& (document.form1.Niederlassung[22].checked!=true) && (document.form1.Niederlassung[23].checked!=true)) {
alert("Bitte Niederlassung auswählen!");
return false;
}
Wie kann ich einen Alert aufbauen, der Variablen (in diesem Fall die Niederlassungen) variabel aus der MySQL einliest, abfragt und aufbaut und auch abfragt, ob ein Button geklickt ist. Kann ich eine php Schleife in ein Java script einbauen? Ich habe keine Idee, wie ich das anfangen könnte. Es wäre klasse, wenn mir jemand "Starthilfe" geben könnte.

MfG

Jürgen
 

mihe7

Top Contributor
Falscher Bereich (dürfte vom Moderator verschoben werden).

Die Abfrage da oben meinst Du aber nicht ernst, oder? Ich gehe mal davon aus, dass es 24 Checkboxen gibt und geprüft werden soll, ob wenigstens eine selektiert wurde. Was machst Du, wen da 1000 Checkboxen stehen?

Javascript:
if (!document.form1.Niederlassung.some(n => n.checked)) {
    alert("Bitte Niederlassung wählen!");
    return false;
}

Wenn ein Element im Code erstellen willst, kannst Du das z.B. mit document.createElement machen. Zum Dokument bzw. einem Element des Dokuments hinzufügen kannst Du das erstellte Element mit appendChild. Woher die Daten für die Elemente stammen, also ob aus einer DB-Abfrage (bzw. einem Request) oder einfach aus einem Array, spielt dabei keine Rolle.
 

Aragon

Mitglied
Hallo Mihe7, vielen dank für deine antwort. hast recht, bei viel mehr buttons wird es chaotisch.

ich habe das snippet jetzt in mein script kopiert, funktioniert aber leider nicht. Die anderen Alerts funktionieren tadellos.

Hier der Ausschnitt des scripts:
if((document.form1.Status[0].checked!=true) && (document.form1.Neupreis.value == "")) {
alert("Bei Gebrauchtgeräten bitte Neupreis eintragen!");
document.form1.Neupreis.focus();
return false;
}
if((document.form1.Status[0].checked!=true) &&(document.form1.Jahre_alt.value == "")) {
alert("Bei Gebrauchtgeräten bitte Alter eintragen!");
document.form1.Jahre_alt.focus();
return false;
}
if (!document.form1.Kostenstelle.some(n => n.checked)) {
alert("Bitte Kostenstelle wählen!");
return false;
}

}
</script>

Hier ein Auszug aus dem Form:
<input type="radio" id="Kostenstelle" name="Kostenstelle" value="<?=$row1["Niederlassung"] ?>" />
Sollte hier noch etwas verkehrt sein?

Jürgen
 

mihe7

Top Contributor
Ah, Du renderst das HTML per PHP? Dann brauchst Du natürlich createElement und appendChild nicht.

Und ja, da ist ein Fehler, weil document.form1.Kostenstelle kein Array sondern eine NodeList liefert. Mach
Javascript:
if (!Array.prototype.some.call(document.form1.Kostenstelle, n => n.checked))
draus.
 

Ähnliche Java Themen

Neue Themen


Oben