我遇到了我的ColdFusion代碼問題。我正在嘗試使用cfloop創建一個簡單的HTML選擇表單來填充選項。它可以工作,當你選擇一個選項時,它會從數據庫中獲取該選項。但一旦你這樣做了,唯一可用的選項就是之前選擇的選項。我究竟做錯了什麼?選擇選項後刪除ColdFusion選項
<!--- Query the DataBase --->
<cfparam name="url.colors" default="">
<cfif structKeyExists(form, "colordb")>
<cfset url.colordb = form.colordb>
</cfif>
<cfquery datasource="bentest" name="colors">
SELECT *
FROM color_codes
<cfif structKeyExists(url,"colordb") and isNumeric(url.colordb)>
WHERE id=#url.colordb#
</cfif>
</cfquery>
<!--- Add Selector for user to select a color --->
<div class="selector">
<cfoutput>
<form action="?contentId=colorPickdb" name="clr" method="post" class="clr">
<select class="clr" name="colordb" onChange="submit();">
<option selected>Select A Color!</option>
<cfloop query="colors">
<option value="#colors.id#">#colors.color#</option>
</cfloop>
</select>
</form>
</cfoutput>
</div>
<div class="dump">
<!--- Output results of Query --->
<p><cfif structKeyExists(form, "colordb")>
<cfoutput query="colors">
#colors.color# <br>
#colors.hexvalue# <br><br>
</cfoutput>
</cfif>
<br>
</p>
</div>
當您選擇一個選項並提交頁面時,where子句'WHERE id =#url.colordb#'是活動的,因此只從DB中選擇該顏色。 – RRK
與原始問題無關,但是......從不使用原始客戶端提供的sql值,如'WHERE id =#url.colordb#'。始終使用cfqueryparam來幫助防止sql注入並提高性能。 – Leigh
與您的問題無關,但使用下拉列表的onChange方法提交表單通常會導致無意和煩人的表單提交。 –