Coldfusion CFC Return JSON display in Jquery, how do I handle multiple records from CFC and display in Jquery?
cfc, coldfusion, jquery
Solution
You could just call the remote function and let ColdFusion serialize the query object to JSON? (notice 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>
JSON formatting will look like this:
{"COLUMNS":["NEWREQUESTER","NEWREQUESTERUSERNAME"],"DATA":[["1","JOHN DOE"],["2","JIM DOE"]]}
Problem
I need a way to grab the json return from coldfusion and display it in jquery I can display the first result fine, but if more that one record comes back I am stuck Here is my cfc ``` <cfquery name="users" datasource="#thedb#"> In this query I can get 1 record to 25 or even more results </cfquery> ``` Here is my out put to jquery, not sure if this is a good way to do this, but.... this is how I handle mutliple records right now. ``` <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> ``` End of CFC Here is my jquery, I have it manually set to grab first record... not sure how to loop over to get all records returned. Here I pass my arguments to the cfc to get my result. works great ``` thedata = instance.getSearch($("#therequestor").val(), $("#fromDate").val(), $("#toDate").val(), $("#theapproved").val(), $("#theroom").val()); ``` Next I build a row in jquery to handle my first record, manual setting not dynamic. ``` var new_Return = '<tr id="newReturn"><th style="text-align:left;" id="first">Request Date:</th><td>'+thedata.newthedate1+'</td><td>    </td><th style="text-align:left;" id="first">Requestor:</th><td>'+thedata.newrequestor1+'</td><td>    </td><th style="text-align:left;" id="first">Approved:</th><td>'+thedata.newapproved1+'</td><td>    </td><th style="text-align:left;" id="first">Viewed:</th><td>'+thedata.newviewed1+'</td></tr>'; $("#theReturnFormTable").append(new_Return) ``` Displays first result in my div tag great, how can I loop over if I have multiple records Example thedata.newrequestor1 is my first record then I could have more many more thedata.newrequestor2 is my 2nd thedata.newrequestor3 is my 3rd etc. on and on How can I handle this in jquery, or do I have to start different in coldfusion cfc??