2012-07-23 75 views
0

我無法傳遞一個參數:問題發送參數CFC

<cfset result = news.updateNews(form.id, form['title'&form.id])> 

我得到一個錯誤與去年的說法,稱「元標題2在類型類coldfusion.filter的Java對象不確定。 FormScope。「

任何提示?除此之外,其他語法應該如何?

+1

cfdump'form ['title'&form.id]'看看它是什麼?也許你應該首先使用默認值cfparam? – Henry 2012-07-23 17:14:36

+3

我會在你的CFSET之前做一個,首先確保你所期望的變量實際存在。剛剛離開你的錯誤信息,它看起來像你期望 Snipe656 2012-07-23 17:27:58

回答

5

提供的語法預計:

  1. 你有一個HTML表單,並
  2. 這形式所具有的領域它命名爲「標題2」

如果你不這樣做,就意味着你錯誤地將form.id(在本例中爲'2')與表單字段名稱'title'混合在一起,創建變量'title2',該變量預計存在於表單範圍中(從表單提交中) 。

如果有一個名爲表單中的「標題2」字段,您的代碼將工作

<cfif isDefined('form.submit')> 
    <!--- here's your syntax ---> 
    <cfoutput>#form['title'&form.id]#</cfoutput> 
</cfif> 

<form action="form.cfm" method="post"> 
    <input type="hidden" name="id" value="2" /> 
    <input type="text" name="title2" value="" /> 
    <input type="submit" name="submit" /> 
</form> 

你以某種方式拿出,可能會阻止表單字段「標題2」從現有邊緣狀態:我個人的一種形式這種簡單的腳本,發送到自身進行了測試。沒有進一步的代碼或解釋,我們無法幫助超越這一點。

+0

謝謝!問題的結果是,title2依賴於另一個領域的定義,我明顯忽視了這一點。雖然語法是好的,所以謝謝你們。 – aceslowman 2012-07-23 17:49:19

0

假設存在變數:

<cfset result = news.updateNews(form.id, evaluate('form.title#form.id#')) > 

是做到這一點的方法之一。

+0

我記得括號符號在某些動態評估中存在問題(例如在評估或isDefined函數中) – BKK 2012-07-23 17:27:35

0

您正在通過名爲'title2'的'title'& stuct「form」,這是'title'& form.I'd的結果。如果你試圖傳入表單Id,只需使用form.Id,而不將它包裝在表單結構標識符中。如果您只是想傳入一個名爲'title'的表單輸入,只需傳入form.title即可。如果你正在嘗試傳遞form.id和form.title,請將它們傳遞給不同的參數。