2010-02-26 71 views
1

我需要一些幫助修改Webform Module,以便它可以用於我的項目。 我現在使用Webform進行單頁面,基本形式,它的工作非常好。 我需要能夠採取多個網絡表單,並根據用戶的一些初始選擇將它們串在一起。 讓我舉個例子。修改Webform模塊

用戶被髮送到「常規信息」網絡表單,他們在那裏放置名稱和生日等內容。此外還有一些與的複選框3個問題分別是:

「你有一所房子」

「你有車」

「你有孩子」

用戶可以選擇全部,部分或全部選項。基於用戶選擇的內容,一旦他們按下提交按鈕,他們將被髮送到「房屋形式」,「汽車形式」和/或「兒童形式」。

當他們完成填寫所有表單後,電子郵件就會像webforms一樣發送到管理員。這些信息不需要存儲在數據庫的網站上,電子郵件就足夠了。

那麼,有關如何做到這一點的任何建議?除了Webform之外的其他東西會更合適嗎?或者(如果我是超級幸運的)做一個模塊,做我所需要的東西已經存在?

回答

0

有條件字段是即將到來的Webform版本3的一項功能。請參閱相關的issue和兩週前發佈的beta version

+0

感謝您指出這一點。我沒有看到這個測試版,但它可以滿足我需要的一切。 – clang1234 2010-03-03 18:53:39

1

爲什麼不根據需要簡單地顯示或隱藏表單元素,而不是重定向到其他可能的多個後續表單?

使用下面的(X)HTML:

<form enctype="form/multipart" method="post" action=""> 

    <fieldset> 

     <legend>Cars:</legend> 

     <label for="cars">Do you have one, or more, cars?</label><input name="cars" id="cars" class="test" type="checkbox" /> 
     <fieldset class="subSection" id="cars"> 
      <input type="radio" name="numCars" value="1" />One 
      <input type="radio" name="numCars" value="2" />Two 
      <input type="radio" name="numCars" value="3" />Three 
     </fieldset> 

    </fieldset> 

    <fieldset> 

     <legend>Children:</legend> 

     <label for="kids">Do you have one, or more, children</label><input name="kids" id="kids" class="test" type="checkbox" /> 
     <fieldset class="subSection" id="kids"> 
      <input type="radio" name="numKids" value="1" />One 
      <input type="radio" name="numKids" value="2" />Two 
      <input type="radio" name="numKids" value="3" />Three 
     </fieldset> 

    </fieldset> 

    <fieldset> 

     <legend>Houses:</legend> 

     <label for="houses">Do you have one, or more, houses</label><input name="houses" id="houses" class="test" type="checkbox" /> 
     <fieldset class="subSection" id="houses"> 
      <input type="radio" name="numHouses" value="1" />One 
      <input type="radio" name="numHouses" value="2" />Two 
      <input type="radio" name="numHouses" value="3" />Three 
     </fieldset> 

    </fieldset> 

</form> 

而jQuery的(可以整理,但我仍然在它新的自己......這樣而已,我「概念驗證」只怕):

$(document).ready(
    function() { 
     // hide the sub-sections 
     $('fieldset.subSection').hide(); 

     // show subsections onClick of the .test checkboxes 
     $('input.test').click(
      function() { 
       $(this).next('fieldset.subSection').slideToggle('slow'); 
      } 
     ) 
    } 
); 

現場演示目前位於:http://davidrhysthomas.co.uk/so/subForms.html

+0

不可思議,謝謝。然而,要填寫的表單非常大,並且將所有這些信息放在一個頁面上對於用戶而言是令人難以置信的艱鉅任務。 再一次,謝謝你。我從來沒有得到現場演示的答案。 – clang1234 2010-02-27 01:10:03

+0

我只能從經驗中發表意見,但我從來不喜歡必須從頁面到頁面移動才能填寫一個表單。值得深入研究javascript實現,將一個整體形式分解爲類似輪播的界面上的小部分或「頁面」。 – 2010-02-27 01:33:26

+0

這太棒了! – Davey 2010-02-27 08:34:44

0

創建自定義模塊,將捕獲通過hook_nodeapi提交併重定向到適當的形式或網頁...