【发布时间】:2016-10-06 16:45:58
【问题描述】:
我在使用 ColdFusion、Ajax 和表单的组合显示查询结果时遇到了问题。我希望代码在用户输入数字时查询数据库,然后在用户输入时显示最接近的数字。最终,我还想显示与数字相关的描述......这就是查询的那部分存在的原因。
现在我的 Ajax 似乎正在工作,但我没有显示任何查询结果。我知道我忽略了一些东西。任何人都可以帮忙吗?
查询
<cfset itemNumber = 'form.useitem'>
<cfquery name="item_results" datasource="inv_usage" username="#session.db_user#" password="#session.db_pass#">
select item_number, item_desc
from item_desc_list
where item_number = '#itemNumber#'
order by convert_to(item_number,'SQL_ASCII')
</cfquery>
<script type="text/javascript">
$('#results').html('<p>' + <cfoutput query="item_results">#item_results.item_number#</cfoutput> + '</p>');
</script>
表格
<form id="usage" name="usage" method="post" action="item_usage2.cfm">
<div class="bodyTextBold"><br><br>
Search for Item Number:
<input name="useitem" title="Search" value="Search" onfocus="(this.value == 'Search') && (this.value = '')" onblur="(this.value == '') && (this.value = 'Search')">
<div id='results'></div>
<div id='ajaxWorking'></div>
<p>Include INVAs? <input type="checkbox" name="invas" /></p>
<input type="submit" name="action" class="inputSubmitr" value="Submit">
<input type="submit" name="action" class="inputSubmitL" value="Cancel">
</div>
<br />
<p><a href="./index.cfm">Usage Menu</a></p>
<p><a href="/RepCorner/index.cfm">Main Menu</a></p>
</form>
阿贾克斯
<script>
$('#usage').keyup(function(event) {
var url = $(this).attr('action');
var formData = $(this).serialize();
$.ajax(url, {
data: formData,
type: "POST",
success : function(response){
$('#ajaxWorking').html('<p>Working!</p>');
}
}).fail(function(jqHXR){
$('#results').html('<p>Sorry! Something\'s wrong...<br /> Error: ' + jqHXR.statusText + '<br />Please contact IT.</p>');
});
});
</script>
【问题讨论】:
-
您在数据库中搜索字符串
form.useitem而不是变量。这是故意的吗?也可以使用cfqueryparam -
一次做一件事。首先确保您的查询在不使用 ColdFusion 运行时返回结果。
标签: jquery ajax coldfusion