Вывод CFC JSON - проблема с отображением результатов запроса - PullRequest
1 голос
/ 21 февраля 2011

Это длинный вопрос - с большим количеством деталей - поэтому сначала извиняюсь за это - но я не уверен, как спросить об этом более коротким способом.

У меня есть два 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");  
        })

который все отлично работает.

Второй ХФУ выглядит так:

<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, но не данные. Я не могу сказать, в чем разница, или где еще я ошибаюсь со вторым примером.

Любой совет приветствуется - снова извиняюсь за длину вопроса.

Simon

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Понял - как и ожидалось (и почти как всегда) что-то простое, что я пропустил.Мне нужно было добавить & queryformat = column во второй пример.

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

Спасибо Эдварду за помощь!

Simon

1 голос
/ 22 февраля 2011

Это длинный снимок, но ваша функция называется «getContacts» и, предположительно, основываясь на вашем фрагменте кода, ваш запрос называется «getContacts».

Мне интересно, происходит ли какое-то странное столкновениетам.Попробуйте переименовать ваш запрос (и измените также строку «return») на что-то совершенно уникальное (обязательно сделайте это и в VAR!)

edit: blah - ваш первый CFC тоже это делает, и это работает.Ну, все равно попробуйте, кто знает ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...