선택 목록 기본값 설정 [닫힘]


16

옵션이있는 선택 목록이 있습니다.

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

기본값을 500으로 설정하려고합니다.

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

그러나 이것은 작동하지 않습니다.


1
나는 같은 문제에 부딪쳤다. 문제는 drupal_get_form ()을 사용하여 양식을 렌더링하지 않고 유스 케이스로 인해 다른 방법으로 렌더링되었다는 것입니다.
user1750

나는 같은 질문을 만났다 !!!! 누가 나를 도울 수 있습니까?
bluesky_still

1
500은 정수가 아닌 '500'이어야합니다.
saadlulu

답변:


3

나는이 문제를 본 적이 없다. 해당 기본값이 작동합니다. 키를 문자열로 만들고 문자열로 설정하려고한다고 말하고 싶습니다 #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재정 의 될 수있는 다른 곳이 있습니까?


3

코드가 작동해야합니다. 일반적으로 키 값을 기본값으로 사용하십시오. 작동하지 않으면 문자열을 키로 만들고 기본값으로 사용하십시오.


2

정수 대신 문자열을 사용해 보셨습니까?

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

아마도 'und'키를 추가해 볼 가치가 있습니다.


1

배열 $ options에서 키를 사용하여 기본값을 정의하려고 했습니까?
$form['price']['min']['#default_value'] = $options[500];


그렇게하면 기술적으로 $ strings [500]의 값, 즉 (문자열) '500'을 전달합니다.
jordojuice

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

선택 목록에서 기본값을 설정하기 위해 #default_value 매개 변수를 사용합니다. 선택 목록의 default_value 속성 값은 선택 목록 배열의 키입니다.


0

다음 코드는 기본값이 500 인 필드를 보여줍니다.

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

-1

나는 같은 문제에 직면하여 기본값이되고 싶은 배열의 색인을 제공하려고 시도했지만 효과가있었습니다. 내 대답은 Ashok KS와 비슷하지만 두 번째 줄은 이해할 수 없습니다.


-1

고정, 우리는 $ option 배열의 기본값을 먼저 설정해야합니다. 마지막으로 추가하면 배열 키가 변경되었습니다. [1] => science, [2] => 드라마, 오른쪽은 [192] => science, [231 ] => 드라마 :-)


-1

시험:

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

그것은 나를 위해 잘 작동합니다.


-2

#default_value형식으로 인수가 있어야합니다 #value.

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

-4

그냥 사용

$form['price']['min']['#default_value'] = 2 

이는 기본값이 2eme 옵션을 사용함을 의미합니다


-5

솔루션 : form_select_options 가 전혀 처리하지 않는다는 것을 알아 내십시오#default_value . 그래서 나는 다음을 사용했다 #value property:

$form['price']['min']['#value'] = isset($_REQUEST['price']['min']) ? $_REQUEST['price']['min'] : $my_default_value;

2
선택 옵션에는 기본값이 있습니다. 또한 #value매개 변수를 설정하면 사용자가 값을 변경할 수 없습니다.
googletorp

1
코드를 보면 #value에 값이없는 경우에만 #value를 default_value로 설정합니다.
breethe

항상 값을 #value, $_REQUEST['price']['min']또는로 설정하십시오 $my_default_value. #value에 넣는 것은 사용자가 입력 한 내용에 관계없이 필드의 값입니다.
googletorp

사용자가 일부 값을 입력하면이 값은 GET ($ _ REQUEST [ 'price'] [ 'min'])을 통해 전송됩니다. 따라서 사용자가 값을 입력하면 #value를 사용자 입력으로 설정하고, 그렇지 않으면 #value = $ my_default_value
breethe

그게 문제 야. 사용자는 선택을 사용할 수 있지만 선택한 내용에 관계없이 결과는 동일합니다.
googletorp
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.