我已動態複選框被這樣動態複選框不正確地更新
<cfset counter = 0>
<form name="setPermissions" class="setPermissions" action="" method="post">
<cfoutput>
<cfloop query="getUserAccess">
<input name="Meetings_#Counter#" type="checkbox" />
<cfset counter = counter + 1>
</cfloop>
</cfoutput>
</form>
的getUserAccess
查詢有6行,這意味着這些複選框6將被輸出生成。
讀取這些分別更新表,我快到下面的查詢
<cfloop from="0" to="#getUserAccess.RecordCount#" index="i">
<cfquery datasource="#Request.dsn#">
UPDATE table SET
<cfif structKeyExists(FORM, 'Meetings_#i#')>
Meetings = <cfif FORM['Meetings_#i#'] EQ "on">1,<cfelse>0,</cfif>
</cfif>
WHERE ID = '#an_ID_that_is_specified#'
</cfquery>
</cfloop>
道歉,如果這個代碼是不正確的,這時候我跑這我的網頁上工作,但有大約有20個這樣的複選框正在生成,所以我剪掉了我的代碼,以便只能看到一個。
現在,這個代碼的偉大工程,當我檢查框和提交表單,此代碼將更新數據庫的值設置爲1
唯一的問題是,當我取消選中該複選框,它將不會將值更改爲0.這是我卡住的地方。爲什麼在沒有將on
指定爲表單值時,它不會將值更改爲0?
我已經完成了<cfdump>
以查看是否有任何東西仍然被傳遞,但是沒有。
與所有的箱子打勾我得到這個轉儲
MEETINGS_0 on
MEETINGS_1 on
MEETINGS_2 on
MEETINGS_3 on
MEETINGS_4 on
MEETINGS_5 on
對於某些打勾,我還沒有打勾的那些都沒有顯示出來。
但該值仍然沒有從1到0
YESSSS!我一直在牆上砸了我的頭大約一個小時,這很簡單! –
在CF9中,您可以使用三元語句,因此我建議: 'Meetings ='但它的小變化並不是必須的。 –
Dpolehonski
@Dpolehonski看起來不錯!將看看這個,但我可能是懶惰的,而不是打擾:P有很多更新條件,所以可能需要一段時間!感謝您的高擡頭! –