Сначала вы должны держаться подальше от конструкции switch
, если вы тестируете только одну вещь;используйте if
.
Во-вторых, согласно вашему собственному комментарию, вы неправильно использовали переменные.
И, в-третьих, почему все лишние ошибки, такие как сброс значений, циклическая обработка #options и перенаправление?
function ims_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'media_content_node_form') {
$nid = arg(3);
if(($nid = arg(3)) && is_int($nid)) {
$form['field_media_model']['#default_value'][0]['nid'] = $nid;
}
}
}