使用CFQUERY和CFSELECT根据选择来提取多个值
-
15-10-2019 - |
题
我有一个cfquery拉三列。以下CFSELECT允许用户根据“显示”参数从各种结果中进行选择,并将值设置为“值”参数。
我想将该记录的第三个未使用值传递给以后查询中使用的变量。我无法将“值”字段设置为我需要的列,因为在此之后的查询中需要该值(根据以前的下拉下拉选择,查询填充了)。
有没有办法做到这一点?以某种方式有CFSELECT抓取2个单独的值吗?
子区域名称 被展示。
状态 是通过的价值。
子区域 为了 这个 稍后需要进行选择。
下面的代码示例:
<cfquery name="qrySubTurf"
DATASOURCESTUFF>
SELECT SubRegionName, SubRegionCd, State
From dbo.tblRegions
where Region='#form.getRegion#' <!---Previous CFSELCT value--->
order by SubRegionName
</cfquery>
<cfselect name="getSubTurf"
style="width:220px"
size=1
multiple="no"
query="qrySubTurf"
value="state" <!---Value passed to the next CFQUERY--->
display="SubRegionName" <!---Value displayed to user--->
queryPosition="below"
onChange="AddForm.submit();">
<option value=""></option>
</cfselect>
现在,我需要获取与用户选择状态和子区域名称相关联的子区域CD,并将其分配给可以在最终查询中使用的变量。我不能单独使用状态来确定SubRegionCD,但是我可以使用子区域名称进行1-1匹配。帮助?
解决方案
最简单的(就利用可能的代码更改而言)是这样做:
<cfquery name="qrySubTurf"
DATASOURCESTUFF>
SELECT SubRegionName, SubRegionCd + ',' + State AS Key
From dbo.tblRegions
where Region=<cfqueryparam value="#form.getRegion#" cfsqltype="CF_SQL_VARCHAR">
order by SubRegionName
</cfquery>
<cfselect name="getSubTurf"
style="width:220px"
size=1
multiple="no"
query="qrySubTurf"
value="Key"
display="SubRegionName"
queryPosition="below"
onChange="AddForm.submit();">
<option value=""></option>
</cfselect>
然后使用 ListFirst(FORM.getSubTurf)
和 ListLast(FORM.getSubTurf)
. 。另外,别忘了使用 <cfqueryparam>
.
其他提示
为了维护跨页面的查询结果,您必须将返回的值分配给表单的操作页面...这是建议的答案... <cfqueryparam value ="#ListFirst(form.***)#>
不隶属于 StackOverflow