# Datenübergabe aus selectOneMenu



## J.A. (6. Apr 2009)

Guten Tag alle zusammen.
Ich habe mich bei euch angemeldet weil ich nicht mehr weiterkomme.

Ich will über ein selectOneMenu (per Datenbankabfrage mit werten befüllt) die (Datenbank) ID in ein inputHidden-Feld schreiben um danach die ID in einer anderen Tabelle weiter zu verarbeiten.

hier der Code für das selectOneMenu und das inputHidden

[HIGHLIGHT="XML"]<!-- selectOneMenu zur Auswahl der Umfrage -->
                <s:decorate id="idumfrageField" template="layout/edit.xhtml">
                 <ui:define name="label">verfügbare Umfragen</ui:define>
                     <h:selectOneMenu id="umfrageId"                                     onclick="document.getElementById('umfrageKategorie:umfrageField:umfrageInput').value=this.selectedIndex;return; " title="Umfrage auswählen">

                         <s:selectItems var="_umfrage"        value="#{umfrageList.resultList}"label="#{_umfrage.umfrageName}"/>
                         <s:convertEntity />                
                     </h:selectOneMenu>                
                       </s:decorate>

                       <!-- Textfeld zur Übernahme des Auswahlwertes -->
                  <s:decorate id="umfrageField" template="layout/edit.xhtml"  rendered="true">
                    <h:inputHidden id="umfrageInput" value="#{umfrageKategorieHome.instance.frkIdUmfrage}"/>
                </s:decorate>[/HIGHLIGHT]

Über die Anweisung "...).value=this.selectedIndex" wird mir nur die Positionsnummer des Menüeintrages in das Hiddenfeld geschrieben. Ich brauche aber die zum Menüeintrag gehörende ID aus der Datenbank!???:L

Hat einer von Euch eine Idee wie ich das hinbekomme??

Vielen Dank schon mal im Vorraus
Jens


----------



## Shulyn (6. Apr 2009)

Hallo,
Ich bin Shulyn, und Arbeite mit J.A. zusammen an dem Projekt.

Es handelt sich um ein Seam Projekt.
h = html
s = seamFramework

Um unser Problem nochmal etwas genauer zu beschreiben.

Wir weisen dem SelectOneMenu einen value zu :

```
[COLOR=#009900][COLOR=#000000][B]<h:selectOneMenu[/B][/COLOR] [COLOR=#000066]id[/COLOR]=[COLOR=#ff0000]"umfrageId"[/COLOR]
[COLOR=#000066]onclick[/COLOR]=[COLOR=#ff0000]"document.getElementById('umfrageKategorie:umfrageField:umfrageInput').value=this.selectedIndex;return; "[/COLOR] [COLOR=#000066]title[/COLOR]=[COLOR=#ff0000]"Umfrage auswählen"[/COLOR][COLOR=#000000][B]>[/B][/COLOR][/COLOR]
[COLOR=#009900][COLOR=#000000][B]  <s:selectItems[/B][/COLOR] [COLOR=#000066]var[/COLOR]=[COLOR=#ff0000]"_umfrage"[/COLOR][COLOR=#000066]
      value[/COLOR]=[COLOR=#ff0000]"#{umfrageList.resultList}"[/COLOR][COLOR=#000066]
      label[/COLOR]=[COLOR=#ff0000]"#{_umfrage.umfrageName}"[/COLOR][COLOR=#000000][B]/>[/B][/COLOR][/COLOR]
[COLOR=#009900][COLOR=#000000][B]  <s:convertEntity[/B][/COLOR] [COLOR=#000000][B]/>[/B][/COLOR][/COLOR]                
[COLOR=#009900][COLOR=#000000][B]</h:selectOneMenu[COLOR=#000000][B]>[/B][/COLOR][/B][/COLOR][/COLOR]
```
value umfrageList.resultList ist eine ArrayList die aus UmfrageId und 2 weiteren Werten besteht. Einer der weiteren Werte ist das Label, das der Benutzer sehen soll.
Jedoch möchten wir wenn er eine auswahl trifft nur die UmfrageId an das Hiddenfeld übergeben.
Unsere bissherige idee ist:

```
[COLOR=#009900][COLOR=#000066]onclick[/COLOR]=[COLOR=#ff0000]"document.getElementById('umfrageKategorie:umfrageField:umfrageInput').value=
document.getElementById('id vom SelectOneMenu')[this.SelectedIndex].value";
[/COLOR][/COLOR]
```
So, denken wir, kommen wir an den Wert der Aktuell im SelectOneMenu steht. Jedoch kommen wir nicht an die UmfrageId.

Für Tips und Ideen sind wir immer Offen.

MfG

Shulyn


----------



## Shulyn (8. Apr 2009)

So,

Wir ham hier zwar keine Tips bekommen, aber haben es jetzt gelöst!
Wir sind von dem "onclick" lösungsversuch weg und haben es so gemacht.

```
<h:selectOneMenu id="idUmfrage"
  valueChangeListener="#{conversation.saveUmfrageId}">
<s:selectItem var="_umfrage" 
  value="#{umfrageList.resultList}"
  label="#{_umfrage.umfrageName}"/>
</h:selectOneMenu>
```
Also wir Packen alle werte die wir benötigen erst einmal in eine conversation, suchen die werte raus die wir benötigen und speichern dann alles in einem Rutsch wech...


Soviel zu diesem Problem.


Schade das keine Antwort kam ...


----------

