这是一个很长的问题 - 有很多细节 - 所以首先为此道歉 - 但我不确定如何以更简洁的方式提出这个问题。
我有两个CFC,两者都是为了从查询中返回JSON,然后我使用jquery来显示结果。
第一个CFC看起来像这样:
<cfcomponent output="no">
<cffunction name="getRequests" access="remote" returntype="query">
<cfset var status = #arguments.status#>
<run some query>
<cfreturn getRequests>
</cffunction>
调用此方法并使用以下内容显示结果:
$.getJSON("getRequests.cfc?method=getRequests&returnformat=json&queryFormat=column",{"status":1}, function(res,code) {
if(res.ROWCOUNT > 0){
for(var i=0; i<res.ROWCOUNT; i++) {
s = "<div class='dPostTxt'><img class='icon01' src='images/icon01.png' /> <h4>" + res.DATA.TITLE[i] + "</h4> <p class='txt01>Panel <br /><span>RFQ ID</span></p>"
+ "<p class='txt02'>" + /*res.DATA.PANEL[i] +*/"<br /><span>" + res.DATA.JOB_ID[i] + "</span></p>"
+ "<p class='txt03'><span>Responses</span>" + /*res.DATA.RESPONSES +*/ "<br /><span>Due </span>" + res.DATA.REQUIRED_DATE[i] + "</p>"
+ "<img class='sep02' src='images/sep01.gif' /> <br /><div class='clr'></div></div>";
};
}
else {
var s = "Sorry, nothing matched your search.";
}
$("#results").html(s);
},"json");
})
一切正常。
第二个CFC看起来像这样:
<cfcomponent output="no">
<cffunction name="getContacts" access="remote" returntype="query">
<cfset var alpha = #arguments.alpha#>
<run some query>
</cfquery>
<cfreturn getContacts>
</cffunction>
</cfcomponent>
此CFC被调用,数据显示如下:
$(".alphaindex").click(function(e) {
var item = $(this).attr("title");
if(item == "")return
$.getJSON("getContacts.cfc?method=getContacts&returnformat=json",{"alpha":item}, function(res,code){
if(res.ROWCOUNT > 0){
for(var i=0; i<res.ROWCOUNT; i++) {
s += "<h3 class='postTitle'>" + res.DATA.CONTACTFIRSTNAME[i] + res.DATA.CONTACTLASTNAME[i] + "</h3>"
+ "<p class='postDesc'>" + res.DATA.CONTACTEMAIL[i] + "</p>"
+ "<p class='postDesc'>" + res.DATA.CONTACTMOBILE[i] + "</p> <br class='clr' />"
};
s += "";
}
else {
var s = "Sorry, nothing matched your search.";
}
$("#results").html(s);
},"json");
e.preventDefault();
})
这是返回JSON数据头 - 但不是数据。我无法分辨出差异是什么,或者我在第二个例子中出错了。
任何建议表示赞赏 - 再次就问题的长度道歉。
西蒙
答案 0 :(得分:1)
这是一个远景,但您的函数名称是“getContacts”,并且可能基于您的代码段,您的查询称为“getContacts”。
我想知道那里是否发生了一些奇怪的碰撞。尝试重命名您的查询(并将“返回”行也改为),使其完全独特(确保VAR范围也是如此!)
编辑:等等 - 你的第一个CFC也这样做,而且它有效。好吧,无论如何都要试试,谁知道......
答案 1 :(得分:1)
得到它 - 正如预期的那样(并且几乎一如既往)我错过了一些简单的东西。我需要在第二个例子中添加&amp; queryformat = column。
$.getJSON("getContacts.cfc?method=getContacts&returnformat=json&queryFormat=column"
感谢爱德华的帮助!
西蒙