Drupal 6,在节点中创建一个表单,将数据保存到另一个内容类型(cck)

时间:2011-05-19 10:38:16

标签: drupal-6 cck drupal-fapi

我需要在内容类型A的视图(不在编辑中)创建表单。 此表单需要将数据提交到内容类型B。

我注意到node/<nodeID/edit是表单的“操作”,可以让您编辑节点。但是如果我在A的表单中放入相同的动作,它会显示B的编辑节点页面。

我的表单很简单:

<form action="xxx">
  <input type="text" name="cck_field_to_be_added_in_B" value="foobar">
</form>

设置xxx动作是不够的,因为FAPI需要form_id和其他东西......那么,我如何构建一个“正确”的表单并以严格的方式发送数据?

有什么想法吗?

---- ---- EDIT

使用rimian解决方案。继承人是其中的一员:

我需要使用CCK创建的节点视图中的表单。所以我的模块有两个功能:

function getForm(){ 
    return drupal_get_form('buildForm');

}

function buildIngredientsForm(){
    $form[]... //bla bla bla build the form
    return $form;
}

因为我想在cck内容中使用它,而不是“破解”CCK的主题系统。这里解释了如何:http://drupal.org/node/206980

现在,每当你想要显示表单时,只需致电print mymodule.getForm();并完成魔术。

此致 Segolas

1 个答案:

答案 0 :(得分:1)

向提交节点编辑表单时调用的函数数组添加另一个回调。您需要了解表单API的基础知识。这不是太难。

它是这样的:

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

然后..

function my_function() {
  //do stuff to the other node
}

请参阅:
http://api.drupal.org/api/drupal/includes--form.inc/group/form_api
http://drupal.org/project/examples