it-swarm-vi.com

Đặt giá trị mặc định chọn danh sách

Tôi có danh sách chọn với các tùy chọn:

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

Tôi đang cố gắng đặt giá trị mặc định của nó thành 500:

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

Nhưng điều này không làm việc.

16
breethe

Tôi chưa bao giờ thấy vấn đề này. Giá trị mặc định đó sẽ hoạt động. Tôi muốn nói hãy thử tạo khóa thành một chuỗi và đặt #default_value như một chuỗi. Các #options mảng có thể được truyền qua array_merge ở đâu đó, do đó gõ lại các phím số nguyên. Nếu khóa là chuỗi thì điều đó không nên xảy ra. Hiện tại, mảng của bạn trông như thế này:

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

Nhưng chuyển mảng đó qua array_merge có thể sắp xếp lại các khóa nguyên đó theo thứ tự tuần tự:

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

Nếu điều đó xảy ra thì 500 key đơn giản là không tồn tại. Điều này là do array_merge không thích bảo tồn các khóa nguyên, nhưng bạn có thể sử dụng các chuỗi để ngăn chặn nó. Vì vậy, tôi nghĩ rằng mảng của bạn sẽ trông giống như thế này:

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

Sau đó, bạn có thể đặt #default_value:

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

Nếu không, có nơi nào khác mà default_value có thể bị ghi đè?

3
jordojuice

Mã của bạn phải hoạt động, thường sử dụng giá trị khóa làm giá trị mặc định, nếu nó không hoạt động, hãy tạo chuỗi làm khóa và sử dụng nó làm giá trị mặc định.

3
Ashok KS

Bạn đã thử sử dụng một chuỗi thay vì một số nguyên?

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

Có lẽ cũng đáng để thử thêm 'und' Chìa khóa.

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

Để đặt giá trị mặc định trong danh sách chọn, chúng tôi sử dụng tham số #default_value. Giá trị của thuộc tính default_value của danh sách chọn sẽ là khóa của mảng danh sách chọn.

1
Nitesh Sethia

Bạn đã thử sử dụng khóa ngoài mảng $ tùy chọn để xác định giá trị mặc định chưa?
[.__.] $form['price']['min']['#default_value'] = $options[500];

1
JurgenR

Mã sau sẽ hiển thị trường có giá trị mặc định là 500.

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