-1

我不能让这个工作。

我的表单有许多输入,包括一个复选框。在我的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 内容中。

4

4 回答 4

1
<cfif StructKeyExists(form, "search_NR")>
    AND (tblMain.NR = true)
</cfif>
于 2011-02-03T21:36:16.767 回答
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 的值为“on”或“off”,可以在您的查询中检查。记得添加form.到元素名称:

<cfIf form.searchNR EQ 'on'>
...
<cfElse>
...
</cfIf>
于 2014-01-22T15:58:55.877 回答
0

尝试使用method="POST"

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

否则,您的变量将通过 URL 范围提交。

于 2011-02-03T17:00:20.180 回答
-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>
于 2011-02-03T17:18:48.703 回答