Checkboxes dynamisch erstellen

Status
Nicht offen für weitere Antworten.

Marie Curie

Aktives Mitglied
Hallo zusammen,

hab in nem Formular dynamisch generierte RadioButtons, sowie Checkboxes. Nachdem das Formular abgeschickt wurde, soll es nochmal zur Prüfung mit allen Eingaben angezeigt werden. Die Checkboxes sollen dann so angeklickt sein, wie der User sie ihm Eingangsformular gewählt hat.

Im Code unten zu sehen sind 2 for-Schleifen, die eine Tabelle erzeugen:

die erste for-Schleife generiert den Namen und den RadioButton, die Checkbox soll in einer weiteren for-Schleife erstellt werden. Die zweite for-Schleife is dabei in die erste verschachtelt. Der erste Teil funktioniert wunderbar, die namen und radiobuttons werden alle schön platziert und je nach Wahl des RadioButtons ausgewählt.

Nur bei den Checkbox's gibt es ein Problem. Diese werden zwar erzeugt, jedoch so wie im Bild im Anhang zu sehen.

Prinzipiell stelle ich mir den Ablauf so vor:
im Eingangsformular wird geprüft, welche Box gewählt wurde. Diese bekommt eine ID und wird einer Liste hinzugefügt. Im Formular zum Prüfen wird dann jedes Element aus der Liste mit den IDs der Kunden verglichen. Stimmt die ID überein, hat der Benutzer die Box markiert und sie soll als "checked" ausgegeben werden. Stimmt die ID nicht überein, soll er eine leere Checkbox generieren.

Code:
<table border="1" width="65%">
		 <th>Name:</th>
		 <th>Referenz:</th>
		 <th>Beteiligt:</th>
		 <%	ArrayList buyer = einZugriff.getDatensaetzeBuyer();
		 	ArrayList parties = headerWerte.getParties();
		 	
                        // wird auf true gesetzt, wenn eine Checkbox bereits eingefügt wurde
                         boolean vorhanden = false;

                        // headerWerte is eine JavaBean
		 	String buyer_idref = headerWerte.getBuyer_idref();
		 	for(int i = 0; i <= buyer.size() - 1; i++){
		 		vorhanden = false;

				db.dbTuple einDatensatz = (db.dbTuple) buyer.get(i);
		 		db.Adress eineAdresse = einDatensatz.getAdress();
				String name = eineAdresse.getName();

		%>
		<tr>
			<td><%= name  %></td>
		 	<td>
		 	<%		int party_id = einDatensatz.getParty_id();
					String party_role = einDatensatz.getParty_role();

					if(buyer_idref.equals(String.valueOf(party_id))){
						%><center><input type="radio" value=<%=party_id%> name="kunde" checked></center><%
					}else{
						%><center><input type="radio" value=<%=party_id%> name="kunde"></center><%
					}
			%></td>
			<td><center>
			<%		for(int j = 0; j <= parties.size() - 1; j++){

						Object parties_partyID = parties.get(j);
						System.out.println("Zaehler j  =" + j);
						System.out.println("Wert aus ArrayList parties" + String.valueOf(parties_partyID));

						if(!vorhanden){
							if(String.valueOf(parties_partyID).equals(String.valueOf(party_id))){
								System.out.println(String.valueOf(parties_partyID) + "stimmt mit " + String.valueOf(party_id) + "überein");

								%><input type="checkbox" value=<%=party_id%> name="check_kunde" checked><%
								break;
							}else{
								System.out.println(String.valueOf(parties_partyID) + "stimmt NICHT mit " + String.valueOf(party_id) + "überein, platziere DUMMY");

								%><input type="checkbox" value=<%=party_id%> name="check_kunde"><%
							}
						}
					}
				 }
			%>
			</td>
			</table>

Habt ihr eine Idee wo mein Denkfehler liegt?
Danke für eure Hilfe

Liebe Grüße

tab.PNG
 

SebiB90

Top Contributor
ich versteh nicht ganz wie die checkboxen aussehen soll
also in dem beispiel jetzt immer 4 boxen?
wie wärs wenn du das break aus der inneren schleife rausnimmst? dann sollte es klappen
 

thefish511

Mitglied
Und was sollen 4 Checkboxen nacheinander bringen?
Er will halt eine Checkbox pro Zelle, so wie die Radiobuttons.

Ich hab jetzt grad erst vor ein paar Tagen mit Java angefangen, aber ich würde sagen, dass die Bedingung der 2ten for-Schleife so nicht ganz richtig ist. Die Schleife wird einfach zu oft durchlaufen.
 

Marie Curie

Aktives Mitglied
Hi,

also es soll pro Zeile nur jeweils eine Checkbox da sein, das stimmt schon ;)

wenn er das wollte, würde er keine 2. inner schleife brauchen -.-
#

Die erste Schleife erstellt die die Zeile und die ersten beiden Zellen. Die zweite Schleife habe ich genommen, damit die Checkbox eben auch noch in die selbe Zeile kommt, wie der Name und der RadioButton.

Wenn du eine andere Variante hast, bin offen dafür!

Code:
ber ich würde sagen, dass die Bedingung der 2ten for-Schleife so nicht ganz richtig ist. Die Schleife wird einfach zu oft durchlaufen.

Wieso meinst du, dass die Schleife zu oft durchlaufen wird? In der ersten Schleife wird in jedem Durchlauf eine neue ID gewählt, diese wird dann in der zweiten Schleife mit den IDs der Liste verglichen, um zu sehen, ob die ID angeklickt wurde.

Wenn ihr andere Vorschläge habt... gerne her damit :)

Liebe Grüße
 

SebiB90

Top Contributor
Marie Curie hat gesagt.:
Hi,

also es soll pro Zeile nur jeweils eine Checkbox da sein, das stimmt schon ;)

wenn er das wollte, würde er keine 2. inner schleife brauchen -.-
#

Die erste Schleife erstellt die die Zeile und die ersten beiden Zellen. Die zweite Schleife habe ich genommen, damit die Checkbox eben auch noch in die selbe Zeile kommt, wie der Name und der RadioButton.

Wenn du eine andere Variante hast, bin offen dafür!
was willst du überhaupt erreichen o_O
du willst eine checkbox haben, prüfst aber 4 verschiedene parties.
wie soll das funktionieren?

wenn du guggen willst ob er an mindestens 1 teilnimmt. dann musste die leere checkbox nach der inneren schleife machen in einer if abfrage und zwar nur wenn vorhanden false ist.

Nachtrag:mir fällt grad auf, du prüfst die variable vorhanden...aber geändert wird sie ja gar net...
 

Marie Curie

Aktives Mitglied
Hab grad mal das Bild aktaulisiert ;)

hab mit der Variabeln einige male rumgespielt... sie zu ändern hat auch nichts gebracht.

Was ich erreichen will ist auf dem Bild zu sehen.
 

SebiB90

Top Contributor
Code:
                for(int j = 0; j <= parties.size() - 1 && !vorhanden ; j++){ 

                  Object parties_partyID = parties.get(j); 
                  System.out.println("Zaehler j  =" + j); 
                  System.out.println("Wert aus ArrayList parties" + String.valueOf(parties_partyID)); 

                 
                     if(String.valueOf(parties_partyID).equals(String.valueOf(party_id))){ 
                        System.out.println(String.valueOf(parties_partyID) + "stimmt mit " + String.valueOf(party_id) + "überein"); 

                        %><input type="checkbox" value=<%=party_id%> name="check_kunde" checked><% 
                        vorhanden = true;
                    
                     }

                }
                if(!vorhanden){ 
                        
                        %><input type="checkbox" value=<%=party_id%> name="check_kunde"><% 
                     }
ungetestet
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Mehrere Bilder gleichzeitig bzw. dynamisch eines Objektes speichern Allgemeines EE 2
W JBoss 6 - SocketTimeout dynamisch setzen Allgemeines EE 2
A JMS: Mehrere Durable Subscriber dynamisch zur Laufzeit erzeugen - setClientID() Allgemeines EE 2
H Class Instanzen Dynamisch erzeugen Allgemeines EE 2
P Einem eingeloggtem Benutzer Rollen dynamisch zuweisen Allgemeines EE 5
M jsp include page - angabe dynamisch Allgemeines EE 10
Y InputTextArea - Attribut Rows dynamisch befüllen Allgemeines EE 2
N Menu dynamisch erstellen Allgemeines EE 3
O JSP dynamisch aus einem objekt heraus erstellen Allgemeines EE 7
M JSP-Site textfeld dynamisch hinzufügen Allgemeines EE 21
B input dynamisch füllen Allgemeines EE 3
J Formularfelder dynamisch erzeugen Allgemeines EE 2
OnDemand CDI Ein Objekt erstellen Allgemeines EE 10
T Teamkalender mit JSF erstellen Allgemeines EE 4
OnDemand War File erstellen Allgemeines EE 1
D Bild erstellen und anzeigen lassen Allgemeines EE 4
T JSF User erstellen Allgemeines EE 22
T HttpSession von Hand erstellen Allgemeines EE 4
C Software ztum Erstellen von EntityBeans Allgemeines EE 5
TRunKX hx:commandExButton DAtei erstellen und dem User zum Download Allgemeines EE 7
M Erstellen LogDatei Allgemeines EE 2
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
Q Dynamische Formulare aus xml Dateien erstellen... Allgemeines EE 8
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
O webservice mit java erstellen. was brauch ich alles dazu? Allgemeines EE 53
N Axis2 lauffähiges Beispiel erstellen Allgemeines EE 3
R SUCHE: log4j.properties - Hilfsprogramm zum Erstellen Allgemeines EE 2
L Flirtseite erstellen Allgemeines EE 2
clemson Ordner auf Linux-Server erstellen --> Rechteproblem Allgemeines EE 5
I Erstellen von EAR's mit Ant Allgemeines EE 2
P Sessions von Hand erstellen und zerstören Allgemeines EE 3
B tabellen erstellen mit jboss Allgemeines EE 7
L Topic oder Queue in JBoss erstellen Allgemeines EE 3

Ähnliche Java Themen

Neue Themen


Oben