Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Checkbox Cfinput复选框已选中_Checkbox_Coldfusion_Cfinput - Fatal编程技术网

Checkbox Cfinput复选框已选中

Checkbox Cfinput复选框已选中,checkbox,coldfusion,cfinput,Checkbox,Coldfusion,Cfinput,我不能完全让它工作 我的表单有许多输入,包括一个复选框。在我的cfquery中,我只想编写一些简单的SQL内容来测试复选框是否被选中。但是我的代码完全忽略了它。以下是基本知识: <cfform name="form" action="...." format="HTML"> .... <cfinput type="checkbox" name="search_NR" id="search_NR" checked="no" /> <cfin

我不能完全让它工作

我的表单有许多输入,包括一个复选框。在我的
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>
我的想法是,如果不勾选,框就不会被定义。但无论我是否选中表单上的复选框,查询都会完全忽略这一点。选中该框后,我只想将
tblMain.NR=TRUE
添加到SQL内容的其余部分。

尝试使用
method=“POST”



否则,您的变量将通过URL作用域提交。

我自己想出了一个解决方案

形式如下:

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

在处理页面上

在查询之前:

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

在查询中

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

和(tblMain.NR=true)

和(tblMain.NR=true)

这将正确显示当前状态,并允许用户在同时使用
时进行更改:

注意:确保
标记位于对表单元素的其他引用之前。

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

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

您还有其他修改表单范围的内容吗?如果您没有为复选框提供value属性,那么它会将值“on”发送回服务器(至少在我的CF8安装中是这样做的)。另外,您是否正在执行任何可能导致页面重定向并可能清除表单范围的操作?不确定。我尽量使这件事尽可能简单。我想我没有为复选框设置值,但我不确定在那里使用什么,如果有的话。表格上还有很多其他的东西。我真的只想把重点放在这个盒子上。检查过了吗?如果是这样的话,请将这段代码添加到sql语句中……我们将进行一个超级简单的测试,以确保它能够正常工作,然后找出您可能要做什么来操作破坏它的表单范围:问题是什么?我不确定这有什么区别。现在,这个页面有相当多的输入(文本框、列表框、选项按钮等),表单调用一个cfquery来查看每个输入,看看它们是否被选中或包含任何信息。一切都很顺利。我只是想把重点放在添加复选框的语法上。实际上,根据livedocs,方法的默认值是“post”。您以前有cfparam的值吗?我很好奇为什么在检查表单字段时没有得到它:)我认为这不是问题所在。。。如果是这样的话,取消复选框将抛出一个错误,而我从未得到过。坦白地说,只要它现在起作用,我几乎不在乎。但是谢谢你的帮助。这和你原来使用的代码是不同的。假设方法=post,则原件应“按原样”工作。这就是说,您应该确定变量的范围,并消除无关的符号。(就个人而言,我也会显式设置复选框值。)是否使用cfinput type=“checkbox”,使用selected=“#search_NR为‘on’#”
    <cfif #search_NR# EQ "on" >
            AND (tblMain.NR = true)
        </cfif>
<cfif StructKeyExists(form, "search_NR")>
    AND (tblMain.NR = true)
</cfif>
<cfparam name="form.search_NR" default="off">

<cfInput name="search_NR" type="Checkbox" checked="#form.search_NR is 'on'#">Some Text Here
<cfIf form.searchNR EQ 'on'>
...
<cfElse>
...
</cfIf>