我正在尝试使用基于下拉列表中的选择的coldfusion查询数据来填充DIV。我目前正在通过将CFDIV绑定到CFM操作页面来实现它,但我试图通过纯JAVASCRIP解决方案来实现它。
因此,通过对CFC的AJAX调用,我收到以下错误:500(执行数据库查询时出错。)
错误的详细信息如下:
执行数据库查询时出错。 您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以便在第4行的'WHERE customer_id = 211 AND alert_status =''附近使用正确的语法
由于某种原因它不喜欢我在CFC中的最后一个查询,但查询在我绑定到CFDIV的其他代码中工作。
这是我的AJAX:
<script>
function PopulateCustomerAlertDIV(){
// Populate the customer alert DIV based on the customer selection
$.ajax({
url:'cfcs/customerAlertDIV.cfc?method=getAlert&returnformat=json',
data: { company_name: $("##company_name>option:selected").attr("Value") },
success: function(response) {
$("##CustomerAlertDIV").val( response );
}
});
}
</script>
这是我想要动态填充的DIV:
<div id="CustomerAlertDIV" style="display: block;"></div>
这是我的SelectBox:
<cfselect queryPosition="below" name="company_name" id="company_name" value="company_name" bind="cfc:cfcs.taxdata.getData()" bindonload="true" tabindex="0" onchange="PopulateCustomerAlertDIV();" >
<option>---Make A Selection---</option>
</cfselect>
这是我的CFC:
<cffunction name="getAlert" access="remote" returnType="string">
<cfargument name="company_name" type="any" required="true">
<!--- localize function variables --->
<cfset var dataDetail = "">
<cfquery name="getID" datasource="#datasource#" >
select customer_id
from customer_table
where company_name = <cfqueryparam value="#ARGUMENTS.company_name#" cfsqltype="cf_sql_varchar">
</cfquery>
<cfquery name="dataDetail" datasource="#datasource#">
SELECT ID, alert, alert_priority
FROM customer_alerts
<!--- adjust cfsqltype if needed --->
WHERE WHERE customer_id = #getID.customer_id# AND alert_status = 'on'
</cfquery>
<cfreturn dataDetail.alert>
</cffunction></cfcomponent>