2017-07-19 114 views
0

我想編碼一個複選框,它應該在選中或取消選中時在數據庫中存儲布爾值。準確地說,我只想要一個複選框,當它被選中時,我會在數據庫中得到1,否則我將存儲0.我怎樣才能使用ColdFusion?我浪費了很多時間,但沒有運氣。ColdFusion中的布爾值複選框

+0

的可能的複製[如何插入在冷聚變代碼單個文本框的值](https://stackoverflow.com/questions/45159889/how-to-insert-single-textbox-value-in-cold- fusion-code) –

+0

這是我的問題,我已經提出,但它沒有給出正確的輸出,所以我已經轉發了它今天。任何建議將不勝感激。 ThankYou –

+0

您應該包含您嘗試的代碼。你所期望的和你得到的是什麼。 –

回答

2

您會在您的html中創建一個複選框,值爲1.我們稱之爲'MyCheckbox'。正如您可能知道的那樣,當您發佈一個未經檢查的複選框的表單時,表單數據中不會包含該複選框。處理這個問題的一種方法是在後端上設置價值。所以,如果您的形式職位,以formpost.cfm,然後在該文件的頂部,你會:

param boolean form.MyCheckbox = 0; 

這樣,form.MyCheckbox總是有一個值,0或1,你會再插入到數據庫中。

另一種方法是有一個隱藏的表單字段,用於存儲「真實」複選框值,並使用js將複選框元素上的單擊事件綁定到基於複選框的checked屬性更新隱藏字段值的函數。

+0

無論何時使用'cfparam',確保指定'type'以確保分配給該變量的數據具有正確的數據類型。不要做隱藏的表單域的事情,這是不必要的複雜。 –

0

爲您的複選框字段命名。選中後,它將通過表單。然後只需使用structKeyExists()即可。

x = structKeyExists(FORM,"checkboxName")?1 (or sanitized checkbox value):0 
+2

爲什麼downvotes?我的或Dave的答案有什麼問題? – Shawn