2009-12-02 27 views
5

CCK for Drupal具有方便的功能,允許單個CCK字段通過「添加另一項」按鈕接受多個值,從而生成節點中的數據數組。以非CCK Drupal形式'添加另一項'

我想知道是否有任何簡單的方法來適應這個非CCK形式,我會打電話drupal_get_form。我寧願不需要用多步形式技術來重新發明輪子。

任何人都這樣做?

回答

6

這將是很好,如果他們已經包括一個更簡化的例子,但this Introduction to AHAH in Drupal,以及this post on adding dynamic form elements using AHAH應涵蓋幾乎所有你需要的(不幸的是,這是相當多的)。

CCK這樣做的方式(主要在content.node_form.inc中的content_add_more_js())稍微複雜一點,因爲它們需要迎合不同字段類型的泛化,以及添加一些額外的東西以平滑tablesort拖動&拖放功能。所以除非你需要後者,我寧願不用它作爲例子,因爲它有點混亂;)

2

只是一個答案的存根,對不起。如果沒有人會給你更好的答案,我有時間,明天我會詳細說明一點。

我相信功能是通過將drupal行爲(從Drupal標準js庫)附加到您正在考慮的字段來完成的。如果我錯了,那麼它只是一個「專門的」jQuery函數。

但是,這很容易! ;)棘手的是,功能是通過AJAX實現的,而不是簡單地生成額外的表單字段客戶端。這是因爲表單API必須完全重新生成表單,否則 - 在提交時 - 其他字段(最初未發送到瀏覽器的字段)將被忽略(這是爲了防止注入)。

HTH至少有點!對不起,如此簡潔。