使用drupal中的hook_form_alter设置webform组件值


set webform component value using hook_form_alter in drupal

我使用form_alter函数来更改组件的值,但它不会更改,默认值存储在数据库中。当我打印$form时,更新后的值会显示出来,但不会保存在db中。

 <?php 
function pahcom_form_edit_module_form_alter(&$form, &$form_state, $form_id) {   
        if($form_id =='webform_client_form_54')
        {           
            $new_value = rand(100000,10000000);
            $form['#node']->{'webform'}['components']['12']['value']=$new_value;            
        }
}
?>

工作代码

<?php 
function pahcom_form_edit_module_form_alter(&$form, &$form_state, $form_id) {   
        if($form_id =='webform_client_form_54')
        {           
            $new_value = rand(100000,10000000);
            $form['submitted']['vendor_id']['#default_value']=$new_value;               
        }
}
?>