JSP-Auswahlliste gewählten Wert ermitteln
annette
- java
0 lina-0 Biesterfeld
Hallo zusammen,
ich möchte mit JSP eine Auswahlliste machen und deren gewählten Wert nachher ausgeben. Die Seite darf auch neu geladen werden. Kann mir da evtl. jemand weiterhelfen.
...
String eintraege[]= text.split(";");
%>
<script type="text/javascript" >
function getSelect(){
var gewWert=document.myform.auswahl.selectedIndex;
var gew= document.myform.options[gewWert].text;
document.myform.currentText.text=gew;
}
</script>
<%
// Auswahlliste aus Array befüllen
out.println("<form name="myform" action="" >");
out.println("<select name="auswahl" onSubmit="getSelect()" >");
for (int i=0; i< eintraege.length-1; i++){
out.println("<option value="+eintraege[i]+" > "+eintraege[i]+"</option>");
}
out.println("</select>");
out.println("<input type="submit" value="ok">");
out.println("<input type="text" name="currentText" value="">" );
out.println("</form>");
...
Funktioniert das in etwa so, oder liege ich ganz falsch.
Bin dankbar für jegliche Hilfe.
Viele Grüße
Annette
moin annette :)
Hallo zusammen,
ich möchte mit JSP eine Auswahlliste machen und deren gewählten Wert nachher ausgeben. Die Seite darf auch neu geladen werden. Kann mir da evtl. jemand weiterhelfen.
// Auswahlliste aus Array befüllen
out.println("<form name="myform" action="" >");
out.println("<select name="auswahl" onSubmit="getSelect()" >");<%for (int i=0; i< eintraege.length-1; i++){
out.println("<option value="+eintraege[i]+" > "+eintraege[i]+"</option>");
}%>
out.println("</select>");
out.println("<input type="submit" value="ok">");
out.println("<input type="text" name="currentText" value="">" );
out.println("</form>");
...Funktioniert das in etwa so, oder liege ich ganz falsch.
Bin dankbar für jegliche Hilfe.
Ich würd es ein ganz klein wenig anders machen:
[...]
<form name="myform" action="">
<select name="auswahl" onSubmit="getSelect()" >
<%for (int i=0; i< eintraege.length-1; i++){%>
<option value="<%=eintraege[i]%>" ><%=eintraege[i]%></option>
<%}%>
</select>
</form>
[...]
Verhaspel dich nicht in tausenden out-anweisungen! Es reicht doch völlig wenn du die Werte als JSP-Variablen ausschreibst.
liebe Grüße aus Berlin
lina-
Hej,
Hallo zusammen,
ich möchte mit JSP eine Auswahlliste machen und deren gewählten Wert nachher ausgeben. Die Seite darf auch neu geladen werden.
Ist das jetzt eine Java oder Javascript-Problem? Was sagt eigentlich die Javascript-Konsole?
»»function getSelect(){
> var gewWert = document.myform.auswahl.selectedIndex;
> var gew = document.myform.options[gewWert].text;
// myForm hat innerhalb der direkten DOM-Hierachie keine Optionsliste
> document.myform.currentText.text = gew;
// currentText hat kein Attribut text
»»}
> <select name="auswahl" onSubmit="getSelect()" >;
Der Eventhandler onSubmit existiert nicht.
Im übrigen kommen wir nun nochmal zu der Eingangsfrage: Serverseitige oder clientseitige Verarbeitung? Weil nach klicken des Submit-Buttons wird eine Request an das action-Attribut gefeuert. Was also danach innerhalb des Browserfensters passieren könnte, ist demnach eigentlich irrelevant. Ich weiß jetzt zwar nicht, ob ggf das Javascript noch vor der Request ausgeführt wird, aber selbst wenn wäre es unerheblich: Den gewählten Wert der Select-Liste könntest du nun genausogut _serverseitig_ aus der GET-Parameterliste ermitteln und meinetwegen sogar wieder nach currentText.value schreiben. Auf die Parameterliste greifst du mittels ServletRequest.getParameter( String s ) zu und kannst es entsprechend mit allen Möglichkeiten die dir Java zur Verfügung stellt verarbeiten.
Solltest Du das aber widererwarten doch nicht gewollt haben, wäre vielleicht eher der Event-Handler onselect etwas für dich.
Beste Grüße
Biesterfeld
Hej,
> > var gew = document.myform.options[gewWert].text;
// myform hat innerhalb der direkten DOM-Hierarchie kein einzelnen Optionsfelder
> > <select name="auswahl" onSubmit="getSelect()" >;
Der Eventhandler onSubmit existiert nicht.
Pardon, das hängt natürlich vom Dokumenttyp ab. Offensichtlich verwendest du einen html-Typ, der natürlich onSubmit durchaus zu interpretieren weiß.
Beste Grüße
Biesterfeld