Drupal 7. Webforms 3.x.在webform提交的值上使用Hook_form_alter
我想修改提交時的webform組件值。我製作了一個名爲'mos'的自定義模塊,並將此代碼添加到它。
function mos_form_alter(&$form, $form_state, $form_id) {
if ($form_id == 'webform_client_form_43') {
dsm($form['#node']->{'webform'}['components']['1']);
$form['#submit'][] = 'mos_contact_us_submit';
}
}
function mos_contact_us_submit($form, &$form_state) {
$form['#node']->{'webform'}['components']['1'] = '[email protected]';
}
但是,當我看數據庫中的結果時,常規的,未覆蓋的值被存儲。你能幫助讓我知道我做錯了什麼嗎?
最後我想根據提供的內容獲取輸入值並輸出一個電子郵件地址(例如,24轉成[email protected])但我想我可以自己弄清這部分。
custom_validate是否引用了[Webform Validation Module](http://drupal.org/project/webform_validation)或drupal/webform標準中的其他函數?感謝您的回覆,我會看到我在array_unshift中獲得的位置。 – 2011-04-06 16:15:22
嗨@dobeerman,array_unshift給了我這個錯誤。 _Warning:array_unshift()預計參數1是陣列,在mos_form_alter空給出()(行... module_ 新代碼 '函數mos_form_alter(&$形式,&$ form_state,$ form_id){ 如果24 ( 'webform_client_form_43' == $ form_id){ \t \t array_unshift( \t \t $形式[ '動作'] [ '提交'] [ '#提交'], \t \t 'mos_check_email' \t); } } 函數mos_check_email(&$ form,&$ form_state,$ form _id){' – 2011-04-06 17:26:05
$ form ['actions'] ['submit'] ['#submit'] = array('mos_contact_us_submit'); – dobeerman 2011-04-06 20:00:24