옵션이있는 선택 목록이 있습니다.
$options = array(0 => '0', 500 => '500', 1000 => '1000');
기본값을 500으로 설정하려고합니다.
$form['price']['min']['#options'] = $options;
$form['price']['min']['#default_value'] = 500;
그러나 이것은 작동하지 않습니다.
옵션이있는 선택 목록이 있습니다.
$options = array(0 => '0', 500 => '500', 1000 => '1000');
기본값을 500으로 설정하려고합니다.
$form['price']['min']['#options'] = $options;
$form['price']['min']['#default_value'] = 500;
그러나 이것은 작동하지 않습니다.
답변:
나는이 문제를 본 적이 없다. 해당 기본값이 작동합니다. 키를 문자열로 만들고 문자열로 설정하려고한다고 말하고 싶습니다 #default_value
. #options
어레이를 통과 할 수있다 array_merge
, 따라서 키를 다시 입력 정수 어딘가. 키가 문자열이면 발생하지 않아야합니다. 현재 배열은 다음과 같습니다.
$options = array(
0 => '0',
500 => '500',
1000 => '1000',
);
그러나 해당 배열을 통과하면 array_merge
정수 키를 순차적으로 재구성 할 수 있습니다.
$options = array(
0 => '0',
1 => '500',
2 => '1000',
);
그럴 경우 500
열쇠는 존재하지 않습니다. array_merge
정수 키를 유지하는 것을 좋아하지 않기 때문에 문자열을 사용하여이를 방지 할 수 있습니다. 따라서 배열이 다음과 같이 보일 것입니다.
$options = array(
'0' => '0',
'500' => '500',
'1000' => '1000',
);
그럼 당신은 설정할 수 있습니다 #default_value
:
$form['price']['min']['#default_value'] = '500';
그렇지 않으면 default_value
재정 의 될 수있는 다른 곳이 있습니까?
배열 $ options에서 키를 사용하여 기본값을 정의하려고 했습니까?
$form['price']['min']['#default_value'] = $options[500];
고정, 우리는 $ option 배열의 기본값을 먼저 설정해야합니다. 마지막으로 추가하면 배열 키가 변경되었습니다. [1] => science, [2] => 드라마, 오른쪽은 [192] => science, [231 ] => 드라마 :-)
의 #default_value
형식으로 인수가 있어야합니다 #value
.
$form['price']['min']['#default_value'] = $options['500'];
솔루션 : form_select_options 가 전혀 처리하지 않는다는 것을 알아 내십시오#default_value
. 그래서 나는 다음을 사용했다 #value property
:
$form['price']['min']['#value'] = isset($_REQUEST['price']['min']) ? $_REQUEST['price']['min'] : $my_default_value;
#value
매개 변수를 설정하면 사용자가 값을 변경할 수 없습니다.
$_REQUEST['price']['min']
또는로 설정하십시오 $my_default_value
. #value에 넣는 것은 사용자가 입력 한 내용에 관계없이 필드의 값입니다.