Coldfusion条件选择选项在IE9、Chrome和Firefox中不起作用
对不起,我可能会问初学者一些问题&对不起,我的英语很差,但我似乎无法完成这项工作,因为我没有开发这项工作 我在Coldfusion中有3个选择下拉框。第一个下拉状态由数据库onload填充:Coldfusion条件选择选项在IE9、Chrome和Firefox中不起作用,coldfusion,Coldfusion,对不起,我可能会问初学者一些问题&对不起,我的英语很差,但我似乎无法完成这项工作,因为我没有开发这项工作 我在Coldfusion中有3个选择下拉框。第一个下拉状态由数据库onload填充: <cfquery name="qState" datasource="#Variables.fw.Config.DSN#"> SELECT * from refState WHERE State = '#url.BindID#' AND status = 'Active' order
<cfquery name="qState" datasource="#Variables.fw.Config.DSN#">
SELECT * from refState WHERE State = '#url.BindID#' AND status = 'Active' order by ldesc
</cfquery>
<select name="State">
<option value="" <cfif isDefined("url.PrevID") and #url.PrevID# EQ "">selected</cfif>></option>
<cfoutput query="qState">
<option value="#qState.State#" <cfif isDefined("url.PrevID") and #url.PrevID# EQ #qState.State#>selected</cfif>>#qState.Ldesc#</option>
</cfoutput>
</select>
然后将所选值传递给第二个下拉列表,即城市:
<cfdiv id="City" bind="url:index.cfm?section=public&action=City&txtReff=#txtReff#&BindStateID={State}&PrevCityID=#txtCity#">
查询以获取状态下的城市:
<!--- loop to fix the state, returns the correct value even though i hav limited knowledge on this --->
<cfset num = 0>
<cfloop index="i" list="#url.BindStateID#" delimiters=",">
<cfset num = #num# + 1>
<cfif #num# EQ 2>
<cfset p = #i#>
</cfif>
</cfloop>
<!--- then the query to get cities under the state --->
<cfquery name="qCity" datasource="#Variables.fw.Config.DSN#">
SELECT * from refCity WHERE State = '#p#' AND status = 'Active' order by ldesc
</cfquery
>
最后显示要选择的城市
<select name="City">
<option value="" <cfif isDefined("url.PrevCityID") and #url.PrevCityID# EQ "">selected</cfif>></option>
<cfoutput query="qCity">
<option value="#qCity.City#" <cfif isDefined("url.PrevCityID") and #url.PrevCityID# EQ #qCity.City#>selected</cfif>>#qCity.Ldesc#</option>
</cfoutput>
</select>
问题是这只适用于IE6、7和8。它不适用于Chrome、IE 9及以上版本和firefox
任何帮助都将不胜感激。谢谢你我添加了标签以防止SQL注入,并删除了包含的额外标签。您不需要它们,而需要cfif语句 另外,在州政府区域,你有一个看起来有点奇怪的回路。看起来您只有一个选择下拉框,所以它只有一个变量,但是,您在它中循环,就好像它有多个变量,并获取第二个值一样。我不明白这一点,觉得你的代码可能在那个位置出错了 我建议将您的代码更改为以下内容:
<!--- Personal Preference --->
<cfparam name="url.prefid" default="">
<cfquery name="qState" datasource="#Variables.fw.Config.DSN#">
SELECT * from refState
WHERE State = <cfqueryparam cfsqltype="cf_sql_varchar" value="#url.BindID#">
AND status = 'Active'
order by ldesc
</cfquery>
<select name="State" id="State">
<option value="" <cfif trim(url.PrevID) eq "">selected</cfif>></option>
<cfoutput query="qState">
<option value="#qState.State#" <cfif trim(url.previd) eq qState.State>selected</cfif>>#qState.Ldesc#</option>
</cfoutput>
</select>
然后是下一个文件:
<cfparam name="url.bindstateid" default="">
<!--- then the query to get cities under the state --->
<cfquery name="qCity" datasource="#Variables.fw.Config.DSN#">
SELECT *
from refCity
WHERE 1=0
<cfif trim(url.bindstateid) is not "">
OR (State = <cfqueryparam cfsqltype="cf_sql_varchar" value="#url.bindstateid#"> AND status = 'Active')
</cfif>
order by ldesc
</cfquery
最后
<cfparam name="url.prevcityid" default="">
<select name="City">
<option value="" <cfif trim(url.prevCityid) eq "">selected</cfif>></option>
<cfoutput query="qCity">
<option value="#qCity.City#" <cfif trim(url.PrevCityID) is "">selected</cfif>>#qCity.Ldesc#</option>
</cfoutput>
</select>
您在其他浏览器上是否遇到错误?另外,我建议您使用structKeyExistsurl、'PrevCityID',删除if语句中的,并使用selected=selectedDo Firebug或Chrome/IE9等效工具显示任何javascript错误?您在qCity查询中缺少一个结束cfif。