2012-09-04 34 views
0

我正在使用mymodule_form_alter鉤子Drupal Form Alter鉤子

我想提交後更改表單域的值。

任何人都有一個想法如何做到這一點。我正在使用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

一個提交處理程序被調用的過程中來不及做這...值的字段值將已經被保存。你也想用$form_state['values'],而不是$form_state['input']

如果你移動你的代碼到驗證處理程序,你應該得到更多的運氣:

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

非常感謝@Clive。它工作正常 – Rashmi