Drupal 7 양식 API를 사용하여 표준 선택 상자를 만들 때 첫 번째 값은 (새 '빈 양식'에서 선택한 값)입니다 <option selected="selected" value="">- Select -</option>. 이 값은 양식 정의에 지정되어 있지 않으며 양식을 변경하지 않습니다. (이건 괜찮아)
그러나 첫 번째를 사용하는 두 번째 선택 상자를 만들면 #states그러한 기본값이 없습니다. 여러 종속성이있는 복잡한 양식의 경우이 불일치가 문제입니다.
양식 정의의 예는 다음과 같습니다.
function sb_quickquote_test_form($form, &$form_state, $post=array()) {
$fields['first_select'] = array(
'#type' => 'select',
'#title' => 'First select box',
'#options' => Array('First', 'Second', 'Third'),
'#required' => TRUE,
);
$fields['dependent_delect'] = array(
'#type' => 'select',
'#title' => 'Dependent select box',
'#options' => Array('Something', 'Another thing', 'Something else', 'Final thing'),
'#states' => Array(
'visible' => Array('select[name=first_select]' => array('value' => '2')),
'required' => Array('select[name=first_select]' => array('value' => '2')),
),
);
$fields['submit'] = array(
'#type' => 'submit',
'#value' => t('Submit'),
);
return $fields;
}
이 간단한 예에서는 2 개의 선택 상자와 제출 단추가 있습니다. 두 개의 선택 상자가 다음과 같이 표시됩니다.
______________ ________________
| - Select - |v| | Something |v|
`--------------' `----------------'
| - Select - | | Something | <- no empty option
| First | | Another thing |
| Second | | Something else |
| Third | | Final thing |
-------------- ----------------
( #states설정 때문에 두 번째 선택 상자는 첫 번째 선택 상자에 "Third"가 선택된 경우에만 나타납니다)
이러한 불일치로 인해 상호 종속 필드가있는 복잡한 동적 양식을 생성하는 상황에서 문제가 발생합니다.
왜 필드에 일관성이없는 옵션이 제공되는지, 그리고 문제를 해결하기위한 최선의 방법은 무엇인지 아는 사람이 있습니까?