我需要在内容类型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
答案 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