2014-04-05 73 views
0
<form name="abc" id="abc" method="post" action="/test.cfm" enctype="multipart/form-data"> 
<input type="submit" name="btnSubmit" id="btnSubmit" value="OK" /> 
</form> 

由於某些原因,當我點擊提交「btnSubmit」沒有出現在cfdump中。表單提交後沒有顯示錶單變量。 ColdFusion

<cfdump var="#form#"> 
+5

什麼顯示在cfdump中? –

+1

你使用'http:'而不是'file:'訪問表單嗎? –

回答

3

沒有太多的東西可能導致它不會出現在您的表單中。我的罪魁禍首是:

  • 看着錯誤的文件/服務器。
  • 頁面正在通過cflocation或其他方式(javascript location.replace()或location.href = x)重定向 - 即使重定向將瀏覽器返回到同一頁面,也會導致該問題。
  • 表單變量被剝離出來的地方進一步上漲,我會在onRequestStart
  • 名爲「variables.form」局部變量創建並設置爲一個結構進一步上漲猜測 - 不太可能,但我想這是可能有人會一不小心喜歡寫東西<cfset form = url />,這可能會導致該

通常,當這樣的事情發生在我身上,在過去,我發現我一直在觀察在瀏覽器中錯誤的文件。通常我會看到錯誤域名上的相同文件,例如查看生產服務器而不是開發服務器。

如果您結合您的代碼段上方成一個單一的文件中像這樣(test.cfm):

<cfdump var="#form#" /> 

<form name="abc" id="abc" method="post" action="test.cfm" enctype="multipart/form-data"> 
<input type="submit" name="btnSubmit" id="btnSubmit" value="OK" /> 
</form> 

這應該給你一些洞察到你的問題。請注意,我刪除了表單操作中的前導斜槓/,以便此表單將自行發佈。當我第一次查看這個模板時,我看到一個空的結構體(後面跟着按鈕),因爲我還沒有在表單範圍中添加任何東西。當我提交表單時,我會在結構中看到兩個元素,fieldnames和btnSubmit。這是另一個很好的指標,如果你沒有看到表單結構中的字段名,那麼你的CFML頁面可能沒有收到表單提交。如果你知道你正在查看正確的頁面,並且你已經提交了表單並且你還沒有字段名稱條目,那麼我會開始尋找潛在的瀏覽器重定向。

您可能還想在同一個目錄中添加一個空的Application.cfc,以確保沒有應用程序干擾它。 onRequestStart中的某些東西可能會剝離出名稱爲「btnSubmit」的表單變量,或者甚至是名稱中任何位置的字符串「submit」的任何形式變量。我不希望它 - 但我會尋找其他原因,如cflocation標籤第一。