drupal 7 select field выбранное значение не работает в форме рендера
Мне нужно вывести одну друпальную форму с другим контентом. Вот мой код:
$outputs="something else";
$outputs.=render(drupal_get_form(quotes_form));
function quotes_form(){
$form = array();
$form['arrival_city_1'] = array(
'#default_value' => 'Finland',
'#type' => 'select',
'#required' => TRUE,
'#options'=>array(
'China' => 'China',
'Finland' => 'Finland',
),
'#weight'=>2,
'#suffix'=>'</div>',
);
return $form;
}
Значение "Филанд" должно быть значением по умолчанию. Тем не менее, я проверяю вывод html:
<select id="edit-arrival-city-1" class="form-select required" name="arrival_city_1">
<option value="China">China</option>
<option selected="selected" value="Finland">Finland</option>
</select>
В коде выбрано правильное значение, но в поле списка отображается "Китай". Кто-нибудь знает почему? Спасибо
2 ответа
Я пока не знаю, почему, но функция рендеринга вызывает form_select_options, которая, кажется, игнорирует #default_value, но использует #value для установки выбранного параметра. Обычно #value является скорее постоянной настройкой, чем начальной настройкой.
Ниже приведен код использования в случаях флажков. Вы можете легко создать для полей выбора.
$node_schema_type = array('micro_data','json_ld');
foreach($node_schema_type as $key => $value ){
print $sch_type[$key] = $value;
}
$form['schema_format'] = array(
'#type' => 'checkboxes',
'#options' => drupal_map_assoc(array('micro_data','json_ld')),
'#default_value' => $sch_type,
'#title' => t('Add schema type'),
);
Спасибо!