it-swarm.com.de

Legen Sie den Standardwert für die Auswahlliste fest

Ich habe eine Auswahlliste mit Optionen:

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 

Ich versuche, den Standardwert auf 500 festzulegen:

$form['price']['min']['#options'] = $options; 
$form['price']['min']['#default_value'] = 500;

Aber das funktioniert nicht.

16
breethe

Ich habe dieses Problem noch nie gesehen. Dieser Standardwert sollte funktionieren. Ich würde sagen, versuchen Sie, den Schlüssel zu einem String zu machen und setzen Sie #default_value Als String. Das #options - Array wird möglicherweise irgendwo durch array_merge Durchgeleitet, wodurch ganzzahlige Schlüssel erneut eingegeben werden. Wenn Schlüssel Zeichenfolgen sind, sollte dies nicht passieren. Derzeit sieht Ihr Array folgendermaßen aus:

$options = array(
  0 => '0',
  500 => '500',
  1000 => '1000',
);

Durch Übergeben dieses Arrays durch array_merge Können diese Ganzzahlschlüssel jedoch in sequenzieller Reihenfolge neu organisiert werden:

$options = array(
  0 => '0',
  1 => '500',
  2 => '1000',
);

In diesem Fall existiert der Schlüssel 500 Einfach nicht. Dies liegt daran, dass array_merge Ganzzahlschlüssel nicht beibehalten möchte, Sie jedoch Zeichenfolgen verwenden können, um dies zu verhindern. Ich denke, Ihr Array sollte eher so aussehen:

$options = array(
  '0' => '0',
  '500' => '500',
  '1000' => '1000',
);

Dann können Sie Ihren #default_value Einstellen:

$form['price']['min']['#default_value'] = '500';

Gibt es sonst irgendwo, wo der default_value Überschrieben werden könnte?

3
jordojuice

Ihr Code sollte funktionieren. Verwenden Sie im Allgemeinen den Schlüsselwert als Standardwert. Wenn dies nicht funktioniert, erstellen Sie die Zeichenfolge als Schlüssel und verwenden Sie sie als Standardwert.

3
Ashok KS

Haben Sie versucht, eine Zeichenfolge anstelle einer Ganzzahl zu verwenden?

$form['price']['min']['#default_value'] = "500"

Vielleicht auch einen Versuch wert, das 'und' Schlüssel.

2
silkAdmin
$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
        );

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 Auswahllistenarrays.

1
Nitesh Sethia

Haben Sie versucht, den Standardwert mit dem Schlüssel aus den Array $ -Optionen zu definieren?
$form['price']['min']['#default_value'] = $options[500];

1
JurgenR

Der folgende Code zeigt das Feld mit dem Standardwert 500 an.

$options = array(0 => '0', 500 => '500', 1000 => '1000'); 
$form['price'] = array(
          '#type' => 'select',
          '#options' => $options,
          '#default_value' => 500,
          '#title' => 'Price',
        );  
0
Aswini K