需要检查Coldfusion组件中返回的数据

时间:2012-07-02 04:34:43

标签: cordova coldfusion cfc

我的服务器上有一个.cfc用于运行查询并将结果发送回phonegap应用程序。我无法正确检查语法是否在查询中返回任何数据并在结果中发回一个字符串,如“找不到数据”来显示。这是我的代码......

remote array function getintList() {
        var q = new com.adobe.coldfusion.query();
        q.setDatasource("myData");
        q.setSQL("select id1, Date, ShowLInk, IntName, description from myData Where intyear = #dateformat(Now(), "YYYY")# order by date desc");
        var data = q.execute().getResult();
        var result = [];
        for(var i=1; i<= data.recordCount; i++) {
            arrayAppend(result, {"id"=data.id1[i], "name"=data.IntName[i], "date"=dateformat(data.date[i], "mmmm d, yyyy"), "description"=data.description[i], "showlink"=data.ShowLInk[i]});
        }
        return result;
    }

想想也许我可以做这样的cfif语句,但它不起作用......

<cfif data.recordcount lt 1>
result = "no data"
return result;
<cfelse>
return result;
</cfif>

希望有人可以帮助我。

2 个答案:

答案 0 :(得分:5)

结果很好。

如果你的电话缺口我假设然后javascript正在处理结果,那么只需在结果上使用javascript长度。

if(result.length){
    //have data doStuff
}else{
    //noData
}

答案 1 :(得分:1)

您的函数返回一个数组。所以你只需要检查你的returnvariable上的arraylen()。例如:

<!--- invoke your function --->
<cfset intlist = createobject("component","yourcomponentname").getintlist() />

<!--- check for resulsts --->
<cfif arraylen(intlist)>
  do something with your results ...
<cfelse>
  No results ...
</cfif>
编辑:哦,只是没有看到你的功能是远程调用的。所以它可能通过ajax调用。你只需要在JavaScript中检查.length:

// assumed that "data" holds your JSON result
if(data.length) { 
  // do something with the results
} else {
  // show "no results"-message
}