我无法完成这项工作。
我的表单有许多输入,包括一个复选框。在我的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 :(得分:1)
<cfif StructKeyExists(form, "search_NR")>
AND (tblMain.NR = true)
</cfif>
答案 1 :(得分:0)
尝试使用method="POST"
:
<cfform name="form" action="...." format="HTML" method="post">
否则,您的变量将通过URL范围提交。
答案 2 :(得分: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>
答案 3 :(得分:-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>