Я упростил этот код для простоты объяснения.
У меня есть страница cfm, где пользователь нажимает на строку таблицы и получает идентификатор. Я хочу отправить этот идентификатор в CFC, выполнить там запрос и вернуть результаты обратно на страницу cfm.
Вот как выглядит JQuery.
$.ajax({
url: "test.cfc?method=testFunction",
data: {ID:123456},
success: function(response) {
$("#div1").html(response);
}
});
а вот как выглядит cfc.
<cfcomponent>
<cffunction name="testFunction" access="remote" returnType="query" returnFormat="JSON">
<cfquery name="testQuery" datasource="x">
Select ID, NAME
From Table
Where ID = '#url.ID#'
</cfquery>
<cfreturn testQuery>
</cffunction>
</cfcomponent>
РЕДАКТИРОВАТЬ - АЛЬТЕРНАТИВНЫЙ МЕТОД CFC
<cffunction name="testFunction" access="remote">
<cfquery name="testQuery" datasource="x">
Select ID, NAME
From Table
Where ID = '#url.ID#'
</cfquery>
<cfset response = [] />
<cfoutput query="testQuery">
<cfset obj = {
"ID" = ID,
"NAME" = NAME
} />
<cfset arrayAppend(response, obj) />
</cfoutput>
<cfprocessingdirective suppresswhitespace="Yes">
<cfoutput>
#serializeJSON(response)#
</cfoutput>
</cfprocessingdirective>
<cfsetting enablecfoutputonly="No" showdebugoutput="No">
</cffunction>
Как показывает функция успеха в вызове ajax вверху, div1 будет заполнен ответом JSON, который выглядит следующим образом.
{"COLUMNS":["ID","NAME"],"DATA":[[123456,"John"]]}
РЕДАКТИРОВАТЬ - АЛЬТЕРНАТИВНЫЙ ОТВЕТ
[{"ID":123456,"NAME":"John"}]
Затем я хочу иметь возможность использовать и выводить данные из этого ответа JSON где-нибудь на моей странице. Как я могу это сделать? Мне трудно понять разбор этих данных. Моей главной задачей является получение этих данных из формата массива, чтобы я мог выводить их в поля формы на моей странице.