Ich habe eine Auswahlliste mit Optionen:
$options = array(0 => '0', 500 => '500', 1000 => '1000');
Ich versuche, den Standardwert auf 500 zu setzen:
$form['price']['min']['#options'] = $options;
$form['price']['min']['#default_value'] = 500;
Aber das funktioniert nicht.
Antworten:
Ihr Code sollte funktionieren, verwenden Sie im Allgemeinen den Schlüsselwert als Standardwert, wenn er nicht funktioniert, machen Sie den String als Schlüssel und verwenden Sie ihn als Standardwert.
quelle
Ich habe dieses Problem noch nie gesehen. Dieser Standardwert sollte funktionieren. Ich würde sagen, versuchen Sie, den Schlüssel zu einer Zeichenfolge zu machen und
#default_value
als Zeichenfolge festzulegen. Das#options
Array wird möglicherweisearray_merge
irgendwo durchlaufen , wodurch ganzzahlige Schlüssel neu eingegeben werden. Wenn Schlüssel Zeichenfolgen sind, sollte das nicht passieren. Derzeit sieht Ihr Array folgendermaßen aus:Durch die Weitergabe dieses Arrays
array_merge
können diese ganzzahligen Schlüssel jedoch in der folgenden Reihenfolge reorganisiert werden:In diesem
500
Fall existiert der Schlüssel einfach nicht. Dies liegt daran,array_merge
dass Integer-Schlüssel nicht beibehalten werden sollen, Sie können jedoch Zeichenfolgen verwenden, um dies zu verhindern. Ich denke, Ihr Array sollte ungefähr so aussehen:Dann können Sie einstellen
#default_value
:Andernfalls gibt es irgendwo anders, wo die
default_value
möglicherweise überschrieben werden?quelle
Haben Sie versucht, eine Zeichenfolge anstelle einer Ganzzahl zu verwenden?
Vielleicht ist es auch einen Versuch wert, den
'und'
Schlüssel hinzuzufügen .quelle
Haben Sie versucht, den Standardwert mithilfe des Schlüssels aus den $ -Optionen des Arrays zu definieren?
$form['price']['min']['#default_value'] = $options[500];
quelle
Um den Standardwert in der Auswahlliste festzulegen, verwenden wir den Parameter #default_value. Der Wert des Attributs default_value der Auswahlliste ist der Schlüssel des Auswahllisten-Arrays.
quelle
Der folgende Code zeigt das Feld mit dem Standardwert 500 an.
quelle
Ich stellte das gleiche Problem gegenüber und ich versuchte, den Index des Arrays zu geben, das ich der Rückstellungswert sein möchte und es funktionierte. Meine Antwort ist ähnlich wie bei Ashok KS, aber seine zweite Zeile konnte ich nicht verstehen.
quelle
behoben, wir sollten den Standardwert zuerst für dieses $ option-Array setzen, wenn wir zuletzt hinzugefügt haben, hat sich der Array-Schlüssel geändert [1] => science, [2] => drama, das Recht sollte [192] => science, [231 sein ] => Drama :-)
quelle
Versuchen:
$ form ['price'] ['# default_value'] = 500;
Es ist eine gute Arbeit für mich.
quelle
Das
#default_value
sollte seine Argumente in der Form haben wie das#value
.quelle
Benutz einfach
Dies bedeutet, dass der Standardwert die Option 2eme verwendet
quelle
LÖSUNG: Stellen Sie fest , dass form_select_options überhaupt nicht funktioniert
#default_value
. Also habe ich benutzt#value property
:quelle
#value
Parameters macht es dem Benutzer unmöglich, den Wert zu ändern.$_REQUEST['price']['min']
oder$my_default_value
. Was auch immer Sie in den Wert # eintragen, wird der Wert des Feldes sein, unabhängig davon, was der Benutzer eingibt.