我有一个CFQUERY拉三列。以下CFSELECT允许用户根据'display'参数从各种结果中进行选择,并将值设置为'value'参数。
我想将该记录的第三个未使用值传递给稍后查询中使用的变量。我无法将'value'字段设置为我需要的列,因为在此查询之后的查询中需要该值(根据先前的下拉选项填充查询)。
有办法做到这一点吗?以某种方式让CFSELECT获得2个单独的值?
显示SubRegionName 。
状态是要传递的值。
稍后需要 SubRegionCD 进行此选择。下面的代码示例:
<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>
现在我需要获取与用户选择State和SubRegionName相关联的SubRegionCD,并将其分配给可在最终查询中使用的变量。我不能单独使用State来确定SubRegionCD,但我可以使用SubRegionName进行1-1匹配。帮助
答案 0 :(得分: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>
。
答案 1 :(得分:0)
要在页面之间维护查询结果,您必须将返回的值拆分为表单的操作页面...这是建议的答案... <cfqueryparam value ="#ListFirst(form.***)#>