如何检查 cfquery 结果中的复选框
How to check checkbox from cfquery results
我有一个案例需要根据 cfquery
结果选中一个复选框。数据库将 return 1 or 0
,我认为这会使从那里处理起来非常简单,但我不确定如何将该数据表示为 HTML 复选框。
这是我目前的情况:
<cfquery name="ContainsSic" datasource="#Application.PrimaryDataSource#">
SELECT HasSiC
FROM tblAssayResults
WHERE CustomerID = 838
AND LotNumber = 15
AND SubLot = 1
</cfquery>
<cfset SicResults = ContainsSic.HasSiC>
<cfoutput>
<tr>
<td align="center">#Passed_CustomerName#</td>
<td align="center">#Passed_LotNumber#</td>
<td align="center">#Passed_SubLot#</td>
<td align="center">#Passed_CarbonAvg#</td>
<td align="center"><input type="button" onclick="" value="Amend" /></td>
<td align="center"><input type="checkbox" value="#SicResults#"/></td>
<td align="center"></td>
<td align="center"><input type="button" onclick=""/></td>
</tr>
</cfoutput>
基本上,如果我没有正确解释,如果数据库 returns 为 1,那么复选框应该显示为选中的复选框,当然等等。我应该提一下,所有内容都在 cfloop
中,稍后可能会成为一个单独的问题。
即使数据库 return 是 1
,我目前也只会得到空复选框。我是否需要包含 cfif
并将 1
return 设为 true
?
谢谢
例如:
<td align="center"><input type="checkbox" value="#SicResults#" #((SicResults) ? "checked='checked'" : "")# /></td>
我想我会选择今天看到的第一个 post 并尝试帮助有需要的人...
对 CF 了解不多,但我使用过标准 JSP 标记库 JSTL。在该标签库中有一个 foreach 标签,它允许您遍历任何可枚举的输出或 JSP 变量。
快速检查...您是否尝试过在复选框上设置 checked
属性?
更深入的思考...
我想知道你能在这里使用 cfloop 应用类似的东西吗?因为我认为 cfquery 标记 returns 是一个可枚举的数据结构,需要迭代以说明查询结果中返回的所有记录。
这是我的伪代码...
<!-- run your query -->
<cfset SicResults = ContainsSic>
<cfset checkedValue = false>
<cfloop from="0" to="SicResults.recordCount" index="i">
//not sure on cf tags to complete following...
if ContainsSic[i].HasSiC === 1
checkedValue = true
<cfoutput>
<tr>
<td align="center">#Passed_CustomerName#</td>
<td align="center">#Passed_LotNumber#</td>
<td align="center">#Passed_SubLot#</td>
<td align="center">#Passed_CarbonAvg#</td>
<td align="center"><input type="button" onclick="" value="Amend" /></td>
<td align="center"><input type="checkbox" checked="#checkedValue#"/></td>
<td align="center"></td>
<td align="center"><input type="button" onclick=""/></td>
</tr>
</cfoutput>
</cfloop>
madeyejm 的解决方案存在问题:它会 return checked="false"
或 checked="true"
-- 但仅仅是 [= checked
属性的 18=]presence(无论其值如何)将导致选中此框。
我觉得下面的符合你的需求
<cfset SicResults = ContainsSic.HasSiC>
<cfif ContainsSic.HasSiC EQ 1 >
<cfset CheckedResult = "checked=""checked""" >
<cfelse>
<cfset CheckedResult = "" >
</cfif>
<cfoutput>
<tr>
<td align="center">#Passed_CustomerName#</td>
<td align="center">#Passed_LotNumber#</td>
<td align="center">#Passed_SubLot#</td>
<td align="center">#Passed_CarbonAvg#</td>
<td align="center"><input type="button" onclick="" value="Amend" /></td>
<td align="center"><input type="checkbox" value="#SicResults#" #CheckedResult#/></td>
<td align="center"></td>
<td align="center"><input type="button" onclick=""/></td>
</tr>
</cfoutput>
我有一个案例需要根据 cfquery
结果选中一个复选框。数据库将 return 1 or 0
,我认为这会使从那里处理起来非常简单,但我不确定如何将该数据表示为 HTML 复选框。
这是我目前的情况:
<cfquery name="ContainsSic" datasource="#Application.PrimaryDataSource#">
SELECT HasSiC
FROM tblAssayResults
WHERE CustomerID = 838
AND LotNumber = 15
AND SubLot = 1
</cfquery>
<cfset SicResults = ContainsSic.HasSiC>
<cfoutput>
<tr>
<td align="center">#Passed_CustomerName#</td>
<td align="center">#Passed_LotNumber#</td>
<td align="center">#Passed_SubLot#</td>
<td align="center">#Passed_CarbonAvg#</td>
<td align="center"><input type="button" onclick="" value="Amend" /></td>
<td align="center"><input type="checkbox" value="#SicResults#"/></td>
<td align="center"></td>
<td align="center"><input type="button" onclick=""/></td>
</tr>
</cfoutput>
基本上,如果我没有正确解释,如果数据库 returns 为 1,那么复选框应该显示为选中的复选框,当然等等。我应该提一下,所有内容都在 cfloop
中,稍后可能会成为一个单独的问题。
即使数据库 return 是 1
,我目前也只会得到空复选框。我是否需要包含 cfif
并将 1
return 设为 true
?
谢谢
例如:
<td align="center"><input type="checkbox" value="#SicResults#" #((SicResults) ? "checked='checked'" : "")# /></td>
我想我会选择今天看到的第一个 post 并尝试帮助有需要的人...
对 CF 了解不多,但我使用过标准 JSP 标记库 JSTL。在该标签库中有一个 foreach 标签,它允许您遍历任何可枚举的输出或 JSP 变量。
快速检查...您是否尝试过在复选框上设置
checked
属性?更深入的思考...
我想知道你能在这里使用 cfloop 应用类似的东西吗?因为我认为 cfquery 标记 returns 是一个可枚举的数据结构,需要迭代以说明查询结果中返回的所有记录。
这是我的伪代码...
<!-- run your query -->
<cfset SicResults = ContainsSic>
<cfset checkedValue = false>
<cfloop from="0" to="SicResults.recordCount" index="i">
//not sure on cf tags to complete following...
if ContainsSic[i].HasSiC === 1
checkedValue = true
<cfoutput>
<tr>
<td align="center">#Passed_CustomerName#</td>
<td align="center">#Passed_LotNumber#</td>
<td align="center">#Passed_SubLot#</td>
<td align="center">#Passed_CarbonAvg#</td>
<td align="center"><input type="button" onclick="" value="Amend" /></td>
<td align="center"><input type="checkbox" checked="#checkedValue#"/></td>
<td align="center"></td>
<td align="center"><input type="button" onclick=""/></td>
</tr>
</cfoutput>
</cfloop>
madeyejm 的解决方案存在问题:它会 return checked="false"
或 checked="true"
-- 但仅仅是 [= checked
属性的 18=]presence(无论其值如何)将导致选中此框。
我觉得下面的符合你的需求
<cfset SicResults = ContainsSic.HasSiC>
<cfif ContainsSic.HasSiC EQ 1 >
<cfset CheckedResult = "checked=""checked""" >
<cfelse>
<cfset CheckedResult = "" >
</cfif>
<cfoutput>
<tr>
<td align="center">#Passed_CustomerName#</td>
<td align="center">#Passed_LotNumber#</td>
<td align="center">#Passed_SubLot#</td>
<td align="center">#Passed_CarbonAvg#</td>
<td align="center"><input type="button" onclick="" value="Amend" /></td>
<td align="center"><input type="checkbox" value="#SicResults#" #CheckedResult#/></td>
<td align="center"></td>
<td align="center"><input type="button" onclick=""/></td>
</tr>
</cfoutput>