2011-08-17 80 views
1

感謝您的幫助!Coldfusion - 更新動態表單字段

我的應用程序允許用戶創建動態問題,其中有n個與問題相關的動態答案。

允許用戶構建這些頁面是完整的,並且完美地創建這些作品。

我被困在構建更新能力的最有效方式。通常在更新期間,我會放棄字段/關係並重建它們。這不是這個應用程序的選項,因爲一旦輸入了答案,我需要保留它以用於報告目的。

因此,在更新期間,我需要識別哪些答案是新的,並插入這些答案 - 而不是更新舊答案。

需要一些幫助,思考這一個通過,謝謝你們!

回答

1

爲了實現這樣的事情,我通常會在每個要更新的字段旁邊都有一個隱藏字段,其中包含其ID。如果某個字段的匹配ID是「0」,那麼我知道這是一個新項目,而不是已存在並需要更新的項目。因此,當您循環訪問FORM結構時,請在非零ID上運行更新,然後插入其餘部分。

0

我採取了與丹類似的方法,但在字段名稱中包含了ID。例如,如果我有三個答案字段,其中一個是新的,則名稱可能是「答案210」,「答案211」和「答案0」。

當我處理表單時,我可以遍歷每個字段,獲取文本之後的數字 - 「回答」 - 並相應地處理數據。你最終會做什麼是這樣的:

<cfoutput> 
<cfif isDefined("form.FIELDNAMES")> 

    <cfloop index="x" list = "#form.fieldnames#"> 
     <cfif findNoCase('answer',x) NEQ 0> 
      <cfset varInteger = replaceNoCase(x,'Answer','')> 
      <cfif varInteger EQ 0> 
       Insert Answer text: #form[x]# with ID of #varInteger#<br /> 
      <cfelse> 
       Update Answer text: #form[x]# with ID of #varInteger#<br /> 
      </cfif>  
     </cfif> 
    </cfloop> 

</cfif> 
</cfoutput> 

牢記處理可以處理任何數量的方式......這是概念證明。