我们有一个列表框,它会被查询动态填充。当我们在列表框中选择一个值并提交表单时,结果将显示在同一页面中。现在我们要保留选中的值表单提交时的列表框。我们如何解决这个问题?我们尝试使用以下代码在会话中设置变量: 会话:#session.sPcwQua#
现在我们如何使用列表框中我们的例子session.sPcwQua中设置的会话变量,以便保留列表框中的选定值。
答案 0 :(得分:0)
您可能希望使用表单范围而不是会话范围: 设置表单默认值:
<cfparam name="form.sPcwQua" default="" />
运行您的查询:
<cfquery name="getsPcwQua" datasource="...
填充您的选择框:
<select name="form.sPcwQua">
<cfloop query="getsPcwQua">
<cfif form.sPcwQua eq getsPcwQua.value>
<cfset selected = 'selected="selected"' />
<cfelse>
<cfset selected = '' />
</cfif>
<option value='#getsPcwQua.value#' #selected#>#getsPcwQua.value#</option>
</cfloop>
</select>
[可能要检查那里的一些语法 - 因为我没有; t;)]
-Sean
答案 1 :(得分:0)
如果您特别需要“保留值”并且想要设置session.sPcwQua变量,可以试试这个:
<cfif isDefined("form.sPcwQua")><cfset session.sPcwQua = form.sPcwQua></cfif>
<cfquery name="getsPcwQua" datasource="yourdsn">
select x from tablex
</cfquery>
<form name="someform" action="">
<select name="sPcwQua">
<cfloop query="getsPcwQua">
<option value='#getsPcwQua.x#' <cfif getsPcwQua.x eq session.sPcwQua >selected</cfif> >#getsPcwQua.x#</option>
</cfloop>
</select>
</form>
如果您只是尝试提交表单并返回元素值,那么应该像Seasn所说的那样:
<cfset fsPcwQua="" />
<cfif isDefined("form.sPcwQua")><cfset fsPcwQua = form.sPcwQua></cfif>
<cfquery name="getsPcwQua" datasource="yourdsn">
select x from tablex
</cfquery>
<form name="someform" action="">
<select name="sPcwQua">
<cfloop query="getsPcwQua">
<option value='#getsPcwQua.x#' <cfif getsPcwQua.x eq fsPcwQua >selected</cfif> >#getsPcwQua.x#</option>
</cfloop>
</select>
</form>