Mehrfachauswahlfeld

  • Hallo,

    ich hab schon alles mögliche ausprobiert, bekomme es aber einfach nicht gebacken wie ich einzelene Elemente des Mehrfachauswahlfeld ansprechen kann.
    Ich habe 5 Elemente. Bei dreien davon habe ich die Checkbox markiert, sie sollen demnach angezeigt werden. Die nicht markierten sollen ausgeblendet werden (nicht ja auch nicht markiert).
    Ich mache sicherlich einen blöden Fehler, ich weiß nur nicht welchen.

    Der Aufbau des Mehrfachauswahlfeldes ist ja recht einfach:

    Meine Listenwerte sind

    - grün
    - gelb
    - blau
    - rot
    - lila

    Das Feld Mehrfachauswahl steht auf "Ja"

    Das Feldname selbst lautet "selectcolor"
    Der Standartwert ist auf "0" gesetzt (alle Checkboxen demarkiert) da erst im Widget selbst die Auswahl getroffen werden soll, welche Farbe eingeblendet wird.

    HTML
    <$ if ( article.value("selectcolor"), "green" ) { $>
    .......
    <$ } $>
    <$ if ( article.value("selectcolor"), "yellow" ) { $>
    ......
    <$ } $>
    .... usw ...... usw .....


    Ich weiß einfach nicht, wo ich in diesem Scriptausschnitt den Wert true (also 1) oder false (also 0) mit anfügen muss. Es wird offenbar immer nur der Feldname (der ja immer gleich ist) berücksichtigt, die Listenwerte dazu aber nicht. Vieleicht bin ich auch völlig auf dem Holzweg - :huh:

    Ich hatte dieses Thema an anderer Stelle schon einmal erwähnt, da gab es dieses Mehrfachauswahlfeld aber noch nicht. Seinerzeit hatte mir Herr Seiz bereits weitergeholfen. Die in diesem Thema aufgeführten Lösungsmöglichkeiten habe ich ebenfalls, leider erfolglos, schon durch.

    Kann mir da vieleicht einer irgendwie weiterhelfen ?

    Anfrage hat sich erledigt. Ich werde es getreu meinem eigenem Motto zunächst selbst weiter versuchen und denke, dass ich eine Lösung finden werde.

    Einmal editiert, zuletzt von ThM (17. Dezember 2015 um 01:29)

  • Hallo,

    also ich behelfe mir da immer so, dass ich zunächst mal rausfinde, was denn der Value tatsächlich ist, wenn mehrere Elemente gewählt werden. Dazu gebe ich mir den Value einfach mal aus:
    Value ist: <$= article.value("selectcolor") $>

    Da sieht man dann als Ergebnis z.B.:
    Value ist: green;yellow

    Das heißt, bei Mehrfach-Belegung ist es eine Liste von Werten, die durch Semikolon getrennt ist.

    Um damit ordentlich umgehen zu können, könnte man das Erebnis von article.value z.B. in einen Array konvertieren (am ; splitten). Oder einfach suchen, ob das Ergebnis einen String enthält, wie z.B.:

    JavaScript
    var ergebnis = article.value("selectcolor");
    if ( ergebnis.indexOf("yellow") !== -1 ){
        // "yellow" ist im ergebnis enthalten
        alert("Hurra, es ist gelb!");
    }

    PS: <$ if ( article.value("selectcolor"), "yellow" ) { $> müsste übrigens eigentlich einen Syntaxfehler bringen, weil das Komma kein gültiger Vergleichsoperator für eine Bedingung ist.

    Freundliche Grüße
    Stefan S. (Zeta Producer-Support)

  • Hallo Herr Seiz,

    vielen lieben Dank für Ihre Erklärung. GENIAL ! :thumbup: :thumbup:

    Meine Denkweise scheint offenbar viel zu komliziert, um eine Abfrage mit dem gewünschten Ergebnis zu hinterlegen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!