1

这是一个很长的问题 - 有很多细节 - 所以首先为此道歉 - 但我不确定如何以更简短的方式提出这个问题。

我有两个 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 数据标头 - 但不是数据。我不知道有什么区别,或者第二个例子我哪里出错了。

任何建议表示赞赏 - 再次为问题的长度道歉。

西蒙

4

2 回答 2

1

这是一个长镜头,但您的函数名称是“getContacts”,并且根据您的代码片段,您的查询可能称为“getContacts”。

我想知道那里是否发生了一些奇怪的碰撞。尝试将您的查询(并更改“返回”行)重命名为完全独特的东西(确保 VAR 也适用于它!)

编辑:等等-您的第一个 CFC 也这样做,并且有效。好吧,还是试试吧,谁知道呢……

于 2011-02-21T23:03:12.657 回答
1

明白了 - 正如预期的那样(并且几乎一如既往)我错过了一些简单的事情。我需要将 &queryformat=column 添加到第二个示例中。

$.getJSON("getContacts.cfc?method=getContacts&returnformat=json&queryFormat=column"

感谢爱德华的帮助!

西蒙

于 2011-02-22T00:17:36.397 回答