2012-07-13 53 views
1

我正在嘗試創建一個具有編輯功能的表,並且遇到了嘗試將舊值與更新值相關聯的問題。我的解決方案是包含一個隱藏的CFInput,它將舊值與要更新的值一起傳遞,然後查詢在cfc中運行。使用隱藏的CFInput傳遞值

<cfform name="update" method="post"> 
<cfoutput query="allusers"> 
    <tr> 
     <td>#username#</td> 
     <td>#email#</td> 
     <td>#securityID#</td> 
     <td><a href="">DELETE</a></td> 
    </tr> 
     <td><cfinput name="oldUsername" value="#username#" type="hidden"></cfinput><cfinput name="updateUsername" value="New Value"></cfinput></td> 
     <td><cfinput name="oldEmail" value="#email#" type="hidden"></cfinput><cfinput name="updateEmail" value="New Value"></cfinput></td> 
     <td><cfinput name="oldSecurityID" value="#securityID#" type="hidden"></cfinput><cfinput name="updateSecurityID" value="New Value"></cfinput></td> 
     <td><cfinput name="submit" type="submit"></cfinput> 
    <tr> 
     <cfdump var="oldUsername"> 
</cfoutput> 

目前,我沒有得到任何錯誤,但它似乎並沒有被路過的老值。有小費嗎?

+2

你錯過了在FORM標籤和CFDUMP VAR的行動應與哈希標記包裹:#oldusername # – 2012-07-13 19:15:05

+0

表中沒有ID列?如果沒有,我會添加一個只是爲了這個目的。 – Busches 2012-07-13 19:45:45

+1

表格不應放在表格中。表格是表格數據,而不是佈局。 – 2012-07-13 20:37:52

回答

2

確保您CFDUMP使用哈希標籤:

<cfdump var="#oldUserName#"> 

否則將無法轉儲變量的內容。

其次,當您還沒有機會爲您設置oldusername時,您正在要求ColdFusion評估「oldusername」。使用CFINPUT標記,只需在HTML中將其重寫爲帶有JavaScript和/或Flash增強功能的常規標記。所以form.oldusername只會在帖子執行到下一個CF模板/ url後纔可用。我也高度建議你的範圍(形式,變量等等)你的變量,所以事情不會越過(除非你仔細意識到變量範圍搜索順序)

3

其他人已經提供了你的答案。我的回答只是關於你的表單的建議。

您隱藏的cfinputs不應位於表格中。表格用於顯示項目。你一定會覺得很更好的服務來移動你的隱藏cfinputs就在您的CFFORM標記下,這樣的:

<cfform name="update" method="post"> 
// NON DISPLAY STUFF 
<cfinput name="oldUsername" value="#username#" type="hidden"> 
<cfinput name="oldEmail" value="#email#" type="hidden"> 
<cfinput name="oldSecurityID" value="#securityID#" type="hidden"> 
// DISPLAY STUFF 
<table> 
</table> 
</cfform> 
+1

我希望有一個「好建議」的標誌,我可以點擊。 :) – 2012-07-13 20:02:42

+0

你可以upvote我的答案。那永遠不會傷害任何人。 :) – 2012-07-13 20:07:01

+1

我也建議不要使用CFFORM。我發現這些日子毫無用處。而且,實際上,NO表單字段應該放在表格中。表格是表格數據 - 表格不是。 :d – 2012-07-13 20:36:48

相關問題