Ankündigung

Einklappen
Keine Ankündigung bisher.

"Auswahl, mehrfach (Ceckbox)" im Template ausgeben

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • "Auswahl, mehrfach (Ceckbox)" im Template ausgeben

    Hi,

    irgendwie finde ich für folgenden Fall keine vernünftige Lösung, obwohl ich anscheinend nicht die einzige Person bin die damit Probleme hat...

    Ich habe ein Inhaltselement mit "Auswahl, mehrfach (Ceckbox)" angelegt und nun möchte ich im Template alle gecheckten Checkboxen jeweils mit den Optionen (Wert/Bezeichnung) ausgeben.

    Allerdings bekomme ich die einzelnen Checkboxen nicht richtig ausgegeben...

    Im Prinzip brauche ich es so:
    PHP-Code:
    <?php foreach ... ?>
        <div>
            Wert: <?php echo ... ?>
            Bezeichnung: <?php echo ... ?>
        </div>
    <?php endforeach; ?>
    Wäre super wenn mir jemand weiterhelfen könnte, da ich mit meinem Latein am Ende bin...


    LG

  • #2
    Wir können hier nur helfen, wenn du deinen Code vollständig zeigst.

    Allgemein ist es ein multipler Array aus

    0 => array('value'=>'meinWert','label'=>'meinLabel')

    Liest man sich die Variable mit einem richtigen PHP Debugger aus, print_r reicht auch, sieht man den Aufbau.

    obwohl ich anscheinend nicht die einzige Person bin die damit Probleme hat...
    Ich finde keine weiteren Fragen dazu.
    Zuletzt geändert von Tim; 12.11.2016, 10:07.
    http://www.premium-contao-themes.com

    Kommentar


    • #3
      Wenn ich einen Code hätte, würde ich diesen natürlich auch zeigen, aber durch fehlende Kenntnisse habe ich einfach alles mögliche ausprobiert und kein richtiges Ergebnis erzielt.

      Aliases:
      Gruppe: "filter" (dort gibt es nur das eine checkboxMenu)
      checkboxMenu: "filter-value"


      [alias] => filter-value
      [type] => checkboxMenu

      [options] => a:11:{i:0;a:2:{s:5:"value";s:24:“option_1“;s:5:“la bel";s:24:“option_2“;}i:1;a:2:{s:5:“value“…

      Einige Versuche überhaupt an Daten zu gelangen:

      PHP-Code:
      <?php echo $this->field('filter-value')->value(); ?>
      Ausgabe: Array

      PHP-Code:
      <?php echo $this->field('filter-value')->html(); ?>
      Ausgabe: ,,,,

      PHP-Code:
      <?php echo $this->field('filter-value')->option('label'); ?>
      Keine Ausgabe


      Ich wäre jetzt eigentlich von ungefähr folgendem ausgegangen, was allerdings auch nicht funktioniert:
      PHP-Code:
      <?php foreach($this->field('filter-value') as $i => $fields): ?>
          <?php echo $this->field('filter-value#'.$i)->option('label'); ?>
          <?php echo $this->field('filter-value#'.$i)->option('value'); ?>
      <?php 
      endforeach; ?>
      Keine Ausgabe

      Kommentar


      • #4
        Du wirst bei einer multiplen Checkbox beides brauchen. Hier bringt Contao nur den Wert in die DB, nicht auch das Label. Das muss aus den Attribut einstellungen geholt werden. Entweder roh aus dem options Datenbank-Feld oder man geht hier über die Felddefinition.

        PHP-Code:

        // attributeinstellungen
        $arrFieldDefinition $this->field('filter-value')->attribute()->getFieldDefinition();

        // aktuelle auswahlen im eintrag

        $arrValues deserialize$this->field('filter-value')->value() );
        print_r($arrValues);

        foreach(
        $arrValues as $value)
        {
        $label $arrFieldDefinition['options'][$value];
        echo 
        $label;

        ---

        ->html() gibt die gewählten Werte als Kommaliste aus. Das macht das gleiche, Unterberücksichtigung von Mehrsprachigkeit.

        ---
        PHP-Code:
        <?php echo $this->field('filter-value#'.$i)->option('label'); ?>
        Das ist etwas komplett anderes! Dies wäre eine Abfrage auf ein dupliziertes Feld, was ggf. ein optionales Feld hat. Hier wäre das Bild-Attribut als Beispiel zu nennen. http://forum.premium-contao-themes.c...late-variablen
        ----
        Zuletzt geändert von Tim; 14.11.2016, 09:46.
        http://www.premium-contao-themes.com

        Kommentar


        • #5
          Vielen Dank!

          Kommentar

          Lädt...
          X