0

我有一个 CFQUERY 拉三列。下面的 CFSELECT 允许用户根据 'display' 参数从各种结果中进行选择,并将值设置为 'value' 参数。

我想将该记录的第三个未使用值传递给一个变量,以便在以后的查询中使用。我无法将“值”字段设置为我需要的列,因为在此之后的查询中需要该值(查询基于先前的下拉选择填充)。

有没有办法做到这一点?以某种方式让 CFSELECT 获取 2 个单独的值?

显示子区域名称。

状态是要传递的值。

稍后需要用于选择的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 匹配。帮助?

4

2 回答 2

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)and ListLast(FORM.getSubTurf)。另外,不要忘记使用<cfqueryparam>.

于 2011-01-20T22:58:49.280 回答
0

要跨页面维护查询结果,您必须拆分返回到表单操作页面的值......这就是建议的答案......<cfqueryparam value ="#ListFirst(form.***)#>

于 2011-01-26T00:09:46.453 回答