Listenwert direkt ansprechen

  • Hallo,


    das Widgetfeldtyp "Listenfeld" ist ja ein Dropdownfeld. Ich möchte gern ausgewählten Wert ansprechen, krieg es aber nicht gebacken, obwohl es mit Sicherheit sau einfach ist :rolleyes:
    Also konkret: Ich habe in einem Listenfeld 3 Werte. "A", "B", "C". Das Feld selbst hat die Bezeichnung "select_field". Wie bekomm ich es hin das beispielsweise wert "B" direkt übernommen wird?


    HTML
    1. <$ if ( article.value("select_field(Wert)" ) )
  • Hallo,


    ich befürchte ich verstehe das noch nicht ganz. Wenn Sie ein Listenfeld haben, dann wählt der Benutzer ja einen Wert aus der Liste und klickt dann irgendwo auf einen OK-Button. In dem Augenblick hat er seine Auswahl getroffen und nur diese Auswahl muss Sie ja interessieren.


    Wenn also das Listenfeld "meinFeld" heißt, dann erhalten Sie doch den vom User gewählten Listeneintrag direkt über: article.value("meinFeld"). Warum würden Sie überhaupt auf nicht von User gewählte Einträge zugreifen wollen?

  • Hallo,


    hmm wie kann ich das am besten erklären.....


    Es handelt sich um ein Translation Tool und es gibt die Möglichkeit 3 verschiedene Übersetzungsmethoden auszuwählen. Folglich soll der User über das DropDown Feld eine Auswahl der Methode treffen. Wenn er Methode 1 wählt soll der Scriptbereich A ausgewählt und dargestellt sein. Bei Methode 2 eben Scriptbereich B usw.


    Das geht je mit der Checkbox über die If Anweisung genial und es müsste demnach doch auch mit einem Listenfeld gehen indem ich den enstprechend eingetragenen Wert direkt aufrufe.




    Code
    1. <$ if article.value("select_field(Wert_A)" ) ) { @@@2fcf575f-64ad-4527-9445-77eee7e4f402@@@gt;
    2. <scriptbereich_A>
    3. bla....bla...bla
    4. </script>
    5. <$ } @@@2fcf575f-64ad-4527-9445-77eee7e4f402@@@gt;
    6. <$ if article.value("select_field(Wert_B)" ) ) { @@@2fcf575f-64ad-4527-9445-77eee7e4f402@@@gt;
    7. <scriptbereich_B>
    8. bla....bla...bla
    9. </script>
    10. <$ } @@@2fcf575f-64ad-4527-9445-77eee7e4f402@@@gt;
  • Das geht je mit der Checkbox über die If Anweisung genial und es müsste demnach doch auch mit einem Listenfeld gehen indem ich den enstprechend eingetragenen Wert direkt aufrufe.

    Das verstehe ich nicht. Welche Checkbox?


    Sie können ja keinen interaktiven Code ausführen, so lange der User das Widget noch zur Bearbeitung offen hat. Wenn der User das Widget mit OK geschlossen hat, interessiert ja nur die Auswahl, die er getroffen hat, oder (siehe meine vorige Antwort)?


    Der Code würde daher meiner Meinung nach eher so aussehen:




    JavaScript
    1. if ( article.value("feldname") == "Wert_A" ) {
    2. /* Ihr entsprechender Scriptbereich */
    3. }
    4. else if ( article.value("feldname") == "Wert_B" ) {
    5. /* Ihr entsprechender Scriptbereich */
    6. }
    7. else if ( article.value("feldname") == "Wert_C" ) {
    8. /* Ihr entsprechender Scriptbereich */
    9. }


    Ihr Code entsprechend umgeschrieben:


    <$ if article.value("select_field") == "Wert_A" ) { {replace1}gt;
    <scriptbereich_A>
    bla....bla...bla
    </script>
    <$ }
    <$ if article.value("select_field") == "Wert_B" ) { {replace6}gt;
    <scriptbereich_B>
    bla....bla...bla
    </script>
    <$ }

  • Erstmal vielen Dank Herr S., dass Sie sich überhaupt die Zeit nehmen, um sich "meiner Problematik" anzunehmen.


    Das verstehe ich nicht. Welche Checkbox?


    Die Schilderung mit der Checkbox war nur als Beispiel gedacht. Will ich aber auch gar nicht weiter vertiefen - wäre nur verwirrend.
    Ich denke, sie haben mir mit dem geposteten Quellcode den richtigen Denkanstoß gegeben .....


    Ich sage Dankeschön :)

  • PS: performanter (weil er ZP nicht 3 mal nach dem Feldwert fragt) wäre wahrscheinlich folgender Code:



    JavaScript
    1. var feldWert = article.value("feldname");
    2. if ( feldWert == "Wert_A" ) {
    3. /* Ihr entsprechender Scriptbereich */
    4. }
    5. else if ( feldWert == "Wert_B" ) {
    6. /* Ihr entsprechender Scriptbereich */
    7. }
    8. else if ( feldWert == "Wert_C" ) {
    9. /* Ihr entsprechender Scriptbereich */
    10. }