【问题标题】:Populate a HTML SELECT using SQL and CF with a condition使用带有条件的 SQL 和 CF 填充 HTML SELECT
【发布时间】:2013-08-19 14:26:30
【问题描述】:

我想使用 CF 和 SQL 填充 2 个 HTML 元素 SELECT,第一个选择获取的是 TABLE Stakes 中所有元素的选项,第二个 SELECT 获取的是来自 TABLE Wards 的选项,其中元素具有与选项中相同的 StakeId在第一个 SELECT 中选择。 我已经尝试这样做了好几个小时,但我无法进行第二次选择。 这是我的代码:

第一次选择

<CFQUERY NAME="getStakes" DATASOURCE="#APPLICATION.ds#">
    SELECT * FROM Estacas
</CFQUERY>

<SELECT NAME="Stakes">
    <CFOUTPUT QUERY="getStakes">
        <OPTION VALUE="#estId#">#estName#</OPTION>
    </CFOUTPUT>
</SELECT>

第二次选择

<CFQUERY NAME="getWards" DATASOURCE="#APPLICATION.ds#">
    SELECT * FROM Alas WHERE estId = form.Stakes
</CFQUERY>

<SELECT NAME="Stakes">
    <CFOUTPUT QUERY="getWards">
        <OPTION VALUE="alaId">#alaName#</OPTION>
    </CFOUTPUT>
</SELECT>

谁能帮帮我?

【问题讨论】:

  • 您需要使用的不仅仅是 CF 和 HTML。为了在选择第一个 &lt;select&gt; 后在第二个 &lt;select&gt; 中加载选项,您需要使用 JavaScript。甚至有 ColdFusion 库来帮助在 ColdFusion 中实现这一点。搜索“ColdFusion 相关选择” - 但忽略任何使用 cfajaxproxy 的解决方案
  • 最简单的方法是使用 cfselect 标签的 bind 属性。这个标签的文档有一个例子。
  • 不要使用cfselect...它会把你画到角落里。立即学习如何以正确的方式进行操作,避免以后遇到麻烦。
  • 我不确定我是否同意使用cfselect 是“最简单的” :D 如果您想使用带有&lt;optgroup&gt; 的选择框,最好使用连接2 的单个查询表,然后使用 cfoutput 上的 group 属性
  • 您是使用两个选择还是一个带有 optgroup 取决于您要完成的任务。你是唯一知道这一点的人。

标签: html sql coldfusion forms cfquery


【解决方案1】:

我终于找到了仅使用 cf 和 html 解决问题的最佳方法,Scott Stroz 是对的,关于使用 group 属性但当时我不知道他在说什么,这样就没有必要使用其他语言,如 javascript。 感谢 Scott,尽管我在知道这个大声笑后才知道你在说什么。

<cfquery name="getAlasEstacas" datasource="#APPLICATION.ds#">
    SELECT a.alaId, a.alaName, e.estName 
    FROM alas a
    INNER JOIN estacas e ON e.estId = a.estId
    ORDER BY e.estName, a.alaName
</cfquery>
<select name="AlaId">
    <cfoutput query="getAlasEstacas" group="estName">
        <optgroup label="#estName#">
            <cfoutput>
                <option value="#alaId#">#alaName#</option>
            </cfoutput>
        </optgroup>
    </cfoutput>
</select>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-24
    • 1970-01-01
    • 2017-06-09
    • 2016-07-03
    相关资源
    最近更新 更多