-1

我的服务器上有一个 .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>

希望可以有人帮帮我。

4

2 回答 2

5

那么结果是一个数组。

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

IE

if(result.length){
    //have data doStuff
}else{
    //noData
}
于 2012-07-02T05:11:20.827 回答
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
}
于 2012-07-02T05:05:31.997 回答