我正在構建一個基於Drupal的網站,需要將節點ID傳遞給單獨的Web服務。這個Web服務處理文件上傳到一個單獨的服務器(從一個Drupal開啓)。可能使用多步表單保存節點?
這會產生一個問題,如果我創建一個新節點,則在提交表單之前不會生成節點ID - 這意味着我無法附加這些文件,直到我保存節點並將其打開並重新編輯爲止。我想刪除該步驟。
是否有可能創建一個兩步節點創建過程,其中節點的基礎知識被提交併保存,然後表單重新指向第二步,在這裏我可以附加文件?
我也會考慮啓用AJAX的節點提交表單 - 但這似乎會增加更復雜的情況。
任何意見,例子將不勝感激!
+1添加第二個提交回調 – 2009-10-14 17:58:01
由於第二個提交回調已經可以訪問'$ form_state ['nid']'中的nid,它也可以將$ form_state ['redirect']'改變爲'node/[nid]/edit在提交後立即再次打開節點編輯表單(在第二次表單提交後需要檢查新節點以防止重定向)。 – 2009-10-14 18:05:19
謝謝!我已經構建了多步表單(連接到標準節點添加/編輯表單)。仍然努力爭取$ form_state變量不被傳遞給我的驗證器函數 - 我發現的例子都沒有顯示這個變量是如何傳遞的。 – PrairieHippo 2009-10-14 22:47:35