2011-02-03 74 views
2

談論基本的...我今天早上必須需要更多的咖啡因或什麼B/C我不能完全得到這個工作。Cfinput複選框檢查

我的表單有許多輸入,包括一個複選框。在我的Cfquery中,我只想編寫一些簡單的SQL來測試複選框是否被選中。但是我的代碼完全忽略它。

這裏的基礎知識:

<cfform name="form" action="...." format="HTML"> 
    .... 
    <cfinput type="checkbox" name="search_NR" id="search_NR" checked="no" /> 
    <cfinput type="submit" name="submit" value="Search" /> 
</cfform> 

我CFQUERY是相當廣泛的,所以我就乾脆把相關的複選框這裏的一部分:

<cfif isDefined("form.search_NR")> 
     AND (tblMain.NR = true) 
    </cfif> 

我的想法是,箱子不會如果它沒有被檢查就被定義。但是不管我是否檢查表單上的框,查詢都完全忽略了這一點。

我只想在選中該框時將「tblMain.NR = TRUE」添加到sql的其餘部分。

+0

您還有其他任何修改FORM範圍的內容嗎?如果您沒有爲複選框提供值屬性,那麼它會將值「on」發送回服務器(至少這就是我的CF8安裝所做的)。另外,你是否正在做任何可能導致頁面重定向的事情,並可能清除FORM範圍? – 2011-02-03 16:34:34

+0

不確定。我儘可能保持簡單。我想我沒有設置複選框的值,但我不確定在那裏使用什麼,如果有的話。還有很多其他的東西正在進行。我真的只想專注於這一盒。它被檢查?如果是這樣,將這一點的代碼添加到SQL語句... – stuttsdc 2011-02-03 16:38:48

+1

那麼做一個超級簡單的測試以確保它能夠正常工作,然後弄清楚你可能在做什麼來操縱打破它的表單範圍:http://pastebin.com/qZ6iP5rC – 2011-02-03 17:13:42

回答

0

嘗試使用method="POST"

<cfform name="form" action="...." format="HTML" method="post"> 

變量可能是通過URL提交的範圍。

-2

我想通了,我自己解決......

形式:

<input type="checkbox" name="search_NR" <cfif search_NR is "on"> checked</cfif> /> 

而且處理頁面上...

的CFQUERY前:

<cfparam name="search_NR" default="off"> 

並在查詢中...

<cfif #search_NR# EQ "on" > 
      AND (tblMain.NR = true) 
     </cfif> 
0
<cfif StructKeyExists(form, "search_NR")> 
    AND (tblMain.NR = true) 
</cfif> 
0

這將正確顯示當前狀態,並允許使用是否都<cfForm><cfInput type="Checkbox">用戶改變:

注意:確保<cfParam>標籤之前,表單元素等引用。

<cfparam name="form.search_NR" default="off"> 

<cfInput name="search_NR" type="Checkbox" checked="#form.search_NR is 'on'#">Some Text Here 

<cfform>提交search_NR的值是「開」或「關」,可以在您的查詢進行檢查。請記住將form.添加到元素名稱中:

<cfIf form.searchNR EQ 'on'> 
... 
<cfElse> 
... 
</cfIf>