如何通过Jquery将查询传递给cfc函数?
如何通过jQueryAjax将ColdFusion查询对象传递给cfc函数?在运行cfquery之后,我正在进行一个ajax调用,如下所示:如何通过Jquery将查询传递给cfc函数?,jquery,ajax,coldfusion,arguments,Jquery,Ajax,Coldfusion,Arguments,如何通过jQueryAjax将ColdFusion查询对象传递给cfc函数?在运行cfquery之后,我正在进行一个ajax调用,如下所示: <cfoutput query="data"> <script type="text/javascript"> $.ajax({ url: '/test.cfc', data:{ q: #data#, //is this how i pass i
<cfoutput query="data">
<script type="text/javascript">
$.ajax({
url: '/test.cfc',
data:{
q: #data#, //is this how i pass it?
method: "getData"
},
success: function(data) {
console.log(data);
}
});
</script>
</cfoutput>
我想我的问题是我遗漏了什么或者我没有正确地传递查询?我相信您正在寻找SerializeJSON函数
<cfoutput query="data">
<script type="text/javascript">
$.ajax({
url: '/test.cfc',
data:{
q: #SerializeJSON(data)#, //is this how i pass it?
method: "getData"
},
success: function(data) {
console.log(data);
}
});
</script>
</cfoutput>
$.ajax({
url:“/test.cfc”,
数据:{
q:#序列化JSON(数据)#,//我是这样传递的吗?
方法:“getData”
},
成功:功能(数据){
控制台日志(数据);
}
});
更多:也许需要更多的手册?我曾经为了工作不得不这么做
<cfsavecontent variable="myOutput">{"QUERY":{"COLUMNS":["ID","BRANDID","CODE","ITEMNO","NAME","SIZE","UNIT","OUNCES","PRICE","DATETIME","USED"],"DATA":[<cfoutput query="parts" maxRows="#arguments.pageSize#">["#ID#","#BRANDID#","#CODE#","#ITEMNO#","#NAME#","#SIZE#","#UNIT#","#OUNCES#","#PRICE#","#datetime#",<cfif
used gte 1>"Yes"<cfelse>"No"</cfif>]<cfif (currentRow neq recordCount) and (currentRow mod arguments.pageSize neq 0)>,</cfif></cfoutput>]},<cfoutput>"TOTALROWCOUNT":#result_count.totalRecords#}</cfoutput></cfsavecontent>
“查询”代码>{码码>{码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码码、单位、盎司、价格、日期时间、使用过的“码码码、价格、日期、时间、使用过的”码码码码、码码码、码号、码号、码号、码号、单位、单位、单位、单位、价格、日期、日期、时间、使用过的“码码码码码码”、“价格”、“价格”、“价格”、“单位”、“单位”、“单位、价格”、“价格”、“价格”、“价格”、“价格”、“价格”、“价格”、“价格”、“价格”、“时间”、“时间”、“时间”、“时间”、“时间”、“时间”、“使用”、“使用”、“使用”、“使用”、“使用”、“使用”、“数据数据”,”,”数据”,”,”数据数据除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了除了DATETIME#“,“是”“否”],]},“TOTALROWCOUNT”:#结果#计数。totalRecords#
为什么要这样做?通常情况下,情况正好相反……意思是“循环查询中的记录并输出此内容”。我不认为你想这么做。您能否更新并告诉我们您需要在演示代码中执行哪些操作?您通常会使用Ajax从浏览器收集数据并将其发送到服务器。CFQUERY在服务器上运行,因此在创建结果后,您可以在将数据输出到浏览器之前将结果传递给任何其他CF函数。将要传递的任何查询移动到cfc中的其他方法。然后从要生成json的方法中调用该方法。(Edit)@surgiie-所有这些都应该在服务器端完成。创建一个运行查询并根据需要格式化结果的函数。然后对该函数进行ajax调用。关于如何重新格式化查询结果的大量现有线程,例如.FWIW,我有一个GitHub repo,它可以帮助将ColdFusion查询对象转换为更标准的JSON格式。虽然从技术上讲是可能的,但通过ajax将查询传递回服务器是执行此任务的错误方法(请参见问题下方的注释)。这项工作应该在服务器端完成。好的,我明白了,但是serializeJSON()不会以我可以使用的更标准的JSON返回我的查询
<cfsavecontent variable="myOutput">{"QUERY":{"COLUMNS":["ID","BRANDID","CODE","ITEMNO","NAME","SIZE","UNIT","OUNCES","PRICE","DATETIME","USED"],"DATA":[<cfoutput query="parts" maxRows="#arguments.pageSize#">["#ID#","#BRANDID#","#CODE#","#ITEMNO#","#NAME#","#SIZE#","#UNIT#","#OUNCES#","#PRICE#","#datetime#",<cfif
used gte 1>"Yes"<cfelse>"No"</cfif>]<cfif (currentRow neq recordCount) and (currentRow mod arguments.pageSize neq 0)>,</cfif></cfoutput>]},<cfoutput>"TOTALROWCOUNT":#result_count.totalRecords#}</cfoutput></cfsavecontent>