it-swarm.com.de

Holen Sie sich die Auswahlliste aktuellen Wert nicht Schlüssel

Beispiel: Es gibt ein Feld mit 3 Optionen in zulässigen Werten, wie Option1, Option2, Option3. Gibt es eine Funktion, die den Feldnamen erhält und ausgewählte Werte zurückgibt, keine Schlüssel?

Mit diesem geben Sie einfach den Schlüssel der ausgewählten Meinung zurück

  print ($node->field_opinion['und'][0]['value'])

pdate :

Ich habe ein Auswahllistenfeld erstellt und mit diesem Feld kann der Benutzer antworten und einen eigenen Wert wie diesen auswählen

1|Stars
2|Nights
3|Awesome
4|Days

Mit dem obigen Code geben Sie einfach das Schlüsselfeld zurück und ich möchte Werte wie "Sterne" zurückgeben.

2
Bijan Zand

Versuchen Sie diesen Code:


$key = $node->field_opinion['und'][0]['value'];
$label = list_allowed_values(field_info_field('field_opinion'))[$key];
2
Jeetendra Kumar

Sie benötigen die Funktionen field_info_field() und list_allowed_values(), um eine Array-Darstellung der Werte zu erhalten, die Sie in der Feldkonfiguration eingegeben haben.

Folgende:

$field_opinion_info = field_info_field('field_opinion');
$opinion_values= list_allowed_values($field_opinion_info);

sollte Ihnen Zugriff auf ein Array geben, das so aussieht wie in $opinion_values gespeichert:

Array
(
    [1] => Stars
    [2] => Nights
    [3] => Awesome
    [4] => Days
)

Und daraus können Sie den benötigten Wert wie folgt erhalten:

$selected_option = $node->field_opinion[LANGUAGE_NONE][0]['value'];
$selected_value = isset($opinion_values[$selected_option]) ? 
  field_filter_xss($opinion_values[$selected_option]) :
 t('Not a valid option');

Beachten Sie die Verwendung von field_filter_xss(); gemäß der Dokumentation von list_allowed_values():

Die Zeichenfolgen sind für die Ausgabe nicht sicher. Schlüssel und Werte des Arrays sollten vor der Anzeige über field_filter_xss () bereinigt werden.

Hoffe das hilft!

1