2010-09-08 81 views
1

在我的网站上使用Drupal 6.19和webform模块。在特定的表单中,我想对输入的值做一些额外的处理,所以我创建了一个模块并实现了hook_form_alter,并将我自己的名为mymodule_webform_submit的函数添加到提交事件处理程序列表中。在Drupal 6中为webform添加事件处理函数

假设我在窗体中有两个字段分别具有字段键值名称和地址。如何在mymodule_webform_submit函数中打印这些字段的值?一些例子将非常感激。以下是我的代码到目前为止。

<?php 
    function mymodule_form_alter(&$form, &$form_state, $form_id) { 
     if($form_id == 'webform_client_form_8') { 

     $form['#submit'][] = 'mymodule_webform_submit'; 

     } 

    } 

    function mymodule_webform_submit(&$form,&$form_state) { 
     drupal_set_message($form_state['values']['name']); 

    } 


?> 

请帮助 谢谢

回答

0

你缺少参数您提交的功能。一旦添加了,你的值应该在$ form_state ['values']中。它应该是这样的:

function mymodule_webform_submit($form, &$form_state) { 
    print $form_state['values']['name']; 
    print $form_state['values']['address']; 
} 

但做任何你想在那里的值。只要确保你有正确的元素键。你可以看看var_export($ form_state ['values']);出口();在函数内部并提交表单。

+0

感谢您的回复jon.I使用drupal_set_message打印了文本字段的值,但它不显示任何内容。另外,尝试按照您的建议进行打印,但在提交之前未打印用户输入的值form.I编辑了上面的代码以反映所做的更改。请帮助。 – Joe 2010-09-09 07:37:32

+0

你可以尝试使用“var_export($ form_state ['values']); exit;”在提交函数内部打印表单提交的所有内容。这应该告诉你结构和可用的东西。 – jonathanpglick 2010-09-21 17:04:55