2011-05-19 71 views
1

我需要在視圖創建表單的節點的形式(未在編輯)的內容類型A. 這種形式的需要將數據提交給內容類型B.的Drupal 6,創建其中數據保存到另一個內容類型(CCK)

我注意到node/<nodeID/edit是讓您編輯節點的表單的「動作」。但是,如果我把同樣的動作在我的窗體上它顯示我B的編輯節點頁面

我的形式很簡單,只要:

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

設置XXX行動是不夠的,因爲FAPI需要form_id和其他的東西...所以,我怎樣才能建立一個「正確」的形式,並以正確的方式發送數據呢?

有什麼想法?

----編輯----

使用它工作的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

添加另一個回調函數的數組節點的編輯表單提交時被調用。您需要了解表單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

+0

謝謝您的回答。 我想我必須在我的模塊中放入'function my_function()'。 但是我到底需要放置'$ form ['#submit'] [] ='my_function';'? – Segolas 2011-05-19 12:07:16

+1

是的,沒錯。你需要讓自己成爲一個模塊。你的$表單修改進入一個hook_form_later(在你的模塊中)。它改變了表單以添加額外的功能。這就是Drupal的美麗。它可以讓你輕鬆擴展現有的功能:) – Rimian 2011-05-20 05:37:31

相關問題