我有一个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.***)#>

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top