ColdFusionコードに問題があります。私はcfloopを使用してオプションを設定する単純なHTML選択フォームを作成しようとしています。それは動作し、オプションを選択すると、そのオプションがdbから取り出されます。一度それを行うと、以前に選択されたオプションだけが利用可能です。私は間違って何をしていますか?オプションを選択すると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
元の質問とは関係ありませんが、これは 'WHERE id =#url.colordb#'のようなsqlのrawクライアント提供の値を使用しないでください。 SQLインジェクションを防ぎ、パフォーマンスを向上させるには、常にcfqueryparamを使用してください。 – Leigh
あなたの質問には関係ありませんが、フォームを送信するためのドロップダウンのonChangeメソッドを使用すると、意図しない迷惑なフォーム提出が頻繁に発生します。 –