使用CFQUERY和CFSELECT根据选择提取多个值

时间:2011-01-20 22:47:23

标签: variables coldfusion cfquery

我有一个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匹配。帮助

2 个答案:

答案 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.***)#>