2011-09-07 58 views
0

嗨Stackoverflow社区,Drupal表单不提交

我使用FormAPI创建了许多类别的投票系统。

我建立与drupal_get_form()并存储的HTML标记的形式进入在CCK字段一个textarea。我还构建了处理数据库的提交功能。

然而,当我显示该节点,该形式可被构造然而,提交功能不被调用。我找不出问题的根源。任何建议表示赞赏,谢谢!

*编辑:

定义形式:

function judges_nodeapi(&$node, $op, $teaser, $page) { 
switch ($op) { 
    case 'view': 

     ... 

     $node->field_judging_form[0]['value']=drupal_get_form('judges_entry',($node)); 

     node_save($node); 
} 
} 



    function judges_entry($form_state, $node){ 
    ... 
    return $form; 
} 

然后,我简单地使用CCK显示形式为纯文本。

+0

如果你发布你的一些相关的可能有帮助代码,所以我们也许能够发现,我认为这将有助于以及问题 – nmc

+0

如果我们能看到你的表单代码。 – Cheesebaron

+0

可以显示完整的代码,请 –

回答

2

每当您拨打drupal_get_form()时,都会生成一个新的标记(出于安全原因),因此您无法静态地将表单呈现到字段中,并期望它能够正常工作。

您需要做的是每次通过执行hook_preprocess_node然后在模板文件中输出表单来显示表单的新版本。像这样的事情在你的模块文件:

function MYMODULE_preprocess_node(&$vars) { 
    $vars['my_form'] = drupal_get_form('judges_entry',($vars['node'])); 
} 

然后在你的模板文件(node.tpl.php):

echo $my_form; 

希望帮助

+0

非常感谢您!我会立即尝试这个! – beeflavor