Meldungen, Hinweise und Tipps

Playa-Feld in Safecracker als Dropdown mit richtigem Select

screen

Eine klare Anleitung, wie ein Playa-Feld als Dropdown in einem Safecracker-Formular einzufügen ist, so dass der richtige Eintrag im Dropdown als ausgewählt gezeigt wird, ist nirgendwo zu finden. In den Beiträgen auf Get Satisfaction von Pixel & Tonic hier gibt es Stückchen, die erst bei richtigem Zusammensetzen das gewünschte Ergebniss bringen.

Hier die kurze Zusammenfassung, wie man es machen muss:

Im Beispiel ist ein Channel "domains" (eine Liste von Domainnamen) mit einem Playa-Feld "domain_kunde" (eine Liste von Kundennamen). Das Playa-Feld ist also mit dem Channel "kunden" verknüpft, wo im title der Kundenname steht. Einer bestimmten Domain (z.B. "heartwaves.ch") wird der Kunde (z.B. Octave 2 GmbH) zugewiesen.

Im Formular-Template ist der Code für ein Safecracker-Formular. Unter allen anderen Feldern ist ein Dropdown, das anzeigen soll, wem die Domain mit der entry_id gehört, die im URL an der Stelle des 3. Segment (also {segment_3} steht. Wenn gewünscht, kann die Domain einem anderen Kunden zugeteilt werden.

Es steht ein Aufruf zum Embeden eines Templates. Dem Template wird die Child-ID des Playa-Feldes mitgegeben. Es ist die ID, welche der abgespeicherten Auswahl für das Feld "domain_kunde" entspricht.

Der Code für das Dropdown: (Space vor dem select entfernen)

< select name="domain_kunde[selections][]">
  {exp:channel:entries channel="domains" dynamic="no" entry_id="{segment_3}"}
    {embed="domains/_kunden_drop" selected="{domain_kunde:child_ids}"}
  {/exp:channel:entries}

Es steht ein Aufruf zum Embeden eines Templates. Dem Template wird die Child-ID des Playa-Feldes mitgegeben. Es ist die ID, welche der abgespeicherten Auswahl für das Feld "domain_kunde" entspricht.

Der Code im Embed:

{exp:channel:entries
  channel="kunden"
  disable="custom_fields|categories|category_fields|member_data|pagination|trackbacks"
  dynamic="no"
}
< option value="{entry_id}"selected>{title}
{/exp:channel:entries}

 

Hoffe, dieser kurze Hinweis hilft. Ich hatte lange gesucht und probiert, bis ich auf die passende Lösung gestossen bin.

Hier ist die Eingabe eines Kommentars möglich:

Formular für Ihren Kommentar






© Copyright 1997-2011 Octave 2 GmbH | Member of the ExpressionEngine Professional Network
Octave 2 GmbH, Ringstrasse 8, 2560 Nidau, Tel. 032 333 27 21
© 2011 Octave2 GmbH