2012-09-04 2 views
0

mymodule_form_alter 후크를 사용하고 있습니다.Drupal Form 변경 후크

제출 후 양식 필드 값을 변경하고 싶습니다.

누구나이 작업을 수행하는 방법을 알고 있습니다. drupal7을 사용하고 있습니다.

여기

function check_domain_form_alter(&$form, &$form_state, $form_id) { 
    switch ($form_id) { 
    case "user_register_form": 
     $form['#submit'][] = 'check_domain_user_register_form_submit'; 
     break; 
    } 
} 

function check_domain_user_register_form_submit($form, &$form_state) { 
    $form_state['input']['profile_main']['field_firm_company_name']['und'][0]['value']='test'; 
} 

답변

3

A는 값 필드 값이 이미 저장되어있는 것입니다 ... 핸들러가이 일을 너무 늦게 과정에서라고 제출 코드를입니다. 또한 $form_state['input']이 아니라 $form_state['values']을 사용하려고합니다. 많은 @Clive

function check_domain_form_alter(&$form, &$form_state, $form_id) { 
    switch ($form_id) { 
    case "user_register_form": 
     $form['#validate'][] = 'check_domain_user_register_form_validate'; 
     break; 
    } 
} 

function check_domain_user_register_form_validate($form, &$form_state) { 
    $form_state['values']['profile_main']['field_firm_company_name']['und'][0]['value']='test'; 
} 
+0

감사 :

당신은 당신이 더 많은 행운을 얻을해야 유효성 검사 처리기에 코드를 이동하는 경우

. 잘 작동한다. – Rashmi