Coldfusion CFC在Jquery中返回JSON显示,如何处理来自CFC的多条记录并在Jquery中显示?

use*_*239 4 coldfusion jquery cfc

我需要一种方法来从coldfusion中获取json返回并在jquery中显示它我可以显示第一个结果很好,但是如果更多那条记录回来我就被卡住这里是我的cfc

<cfquery name="users" datasource="#thedb#">
In this query I can get 1 record to 25 or even more results         
</cfquery>
Run Code Online (Sandbox Code Playgroud)

这是我的jquery,不确定这是否是一个很好的方法,但....这就是我现在处理多个记录的方式.

<cfset var user = structNew()/>

<cfset thenumber = 1>   
        <cfloop query="users"> 
        <cfset user["newrequestor#theNumber#"] = users.requestor/>
        <cfset user["newrequestorusername#theNumber#"] = users.requestor_username/>
        <cfset user["newrequestorphone#theNumber#"] = users.requestorphone/>
        <cfset user["newrequestoremail#theNumber#"] = users.requestoremail/>
        <cfset user["newthedate#theNumber#"] = users.thedate/>
        <cfset user["newapproved#theNumber#"] = users.approved/>
        <cfset user["newcomments#theNumber#"] = users.comments/>
        <cfset user["newviewed#theNumber#"] = users.viewed/>
        <cfset thenumber = thenumber + 1>
        </cfloop>

<cfreturn user>
Run Code Online (Sandbox Code Playgroud)

CFC结束

这是我的jquery,我手动设置为抓取第一条记录...不确定如何循环以获取所有记录返回.

在这里,我将我的参数传递给cfc以获得我的结果.效果很好

thedata = instance.getSearch($("#therequestor").val(), $("#fromDate").val(), $("#toDate").val(), $("#theapproved").val(), $("#theroom").val());
Run Code Online (Sandbox Code Playgroud)

接下来我在jquery中构建一行来处理我的第一条记录,手动设置不是动态的.

var new_Return = '<tr id="newReturn"><th style="text-align:left;" id="first">Request Date:</th><td>'+thedata.newthedate1+'</td><td>&nbsp&nbsp&nbsp&nbsp</td><th style="text-align:left;" id="first">Requestor:</th><td>'+thedata.newrequestor1+'</td><td>&nbsp&nbsp&nbsp&nbsp</td><th style="text-align:left;" id="first">Approved:</th><td>'+thedata.newapproved1+'</td><td>&nbsp&nbsp&nbsp&nbsp</td><th style="text-align:left;" id="first">Viewed:</th><td>'+thedata.newviewed1+'</td></tr>';
        $("#theReturnFormTable").append(new_Return)
Run Code Online (Sandbox Code Playgroud)

在我的div标签中显示第一个结果很好,如果我有多个记录我怎么能循环示例thedata.newrequestor1是我的第一个记录

然后我可以有更多

thedata.newrequestor2是我的第二个thedata.newrequestor3是我的第三个等等

我如何在jquery中处理这个问题,或者我必须在coldfusion cfc中开始不同?

Jos*_*iok 7

您可以只调用远程函数并让ColdFusion将查询对象序列化为JSON?(注意returnFormat ="JSON")

<cffunction name="getUsers" access="remote" returnType="query" returnFormat="JSON">
   <cfquery name="users" datasource="#thedb#">
       In this query I can get 1 record to 25 or even more results         
   </cfquery>
   <cfreturn users>
</cffunction>
Run Code Online (Sandbox Code Playgroud)

JSON格式将如下所示:

{"COLUMNS":["NEWREQUESTER","NEWREQUESTERUSERNAME"],"DATA":[["1","JOHN DOE"],["2","JIM DOE"]]}
Run Code Online (Sandbox Code Playgroud)