1

我在可视化我需要的解决方案时遇到问题。我正在处理的网站上有一个选择菜单,客户希望能够选择一个名为“创建新源”的选项,然后会弹出一个带有空白字段的 JS 窗口供用户使用输入那个新的起源。

提交此表单后,数据库将被更新,选择菜单现在将显示此项目,而无需整个页面刷新。

数据库方面的一切都已设置好并准备就绪,Coldfusion 的 99% 也是如此。

这是相关表单字段的片段:

<p class="_30NP" align="right">
    <label>Origin&nbsp;</label>
</p>
<p class="_20NP">
    <cfselect 
     name="Origin" 
     id="Origin" 
     query="Origin" 
     display="description" 
     value="code"  
     required="yes">
        <option value="new">New Origin</option>
    </cfselect>
</p>

这是CFQUERY:

<CFQUERY DBTYPE="Query" NAME="Origin">
    SELECT Code, [Description]
    FROM ZCODES WHERE CODE = 0
    UNION ALL 
    SELECT Code, [Description]
    FROM ZCODES
    WHERE FieldName = 'Origin'
    ORDER BY 1
</CFQUERY>

这是一个非常简单的问题,答案可能非常简单,我只是很少接触 AJAX。

如何在不完全刷新页面的情况下提交表单(弹出窗口)并刷新选择列表?

4

2 回答 2

1

我会使用像jQuery这样的 javascript 库来处理你的 ajax。

单击按钮后,使用$.get()$.post()$.ajax()与服务器通信。每个人都会做出回应。响应类型由您决定。您可以返回 JSON 并将其解析出来,也可以直接返回 HTML。我可能只是简单地返回 html 来快速简单。

<cfoutput query = "...">
    <option value = "...">...</option>
</cfoutput>

获得结果后,使用$.html()更新select's选项。

于 2013-03-04T19:11:12.437 回答
0

Michael,我个人不喜欢完全 jQuery ajax 解决方案。我真的很喜欢 CFAJAXPROXY。我听说它有缺点,但我没有发现任何缺点。

您的问题与 stackexchange.com 网站上的另一个问题非常相似。我想你可以在这里找到一些很好的信息。

https://softwareengineering.stackexchange.com/questions/133759/where-can-i-find-a-simple-jquery-ajax-coldfusion-tutorial

于 2013-03-04T19:22:50.827 回答