원격 CFC로 AJAX 호출을 보내고 JSON으로 데이터를 다시 가져 오지만, 추측 할 필요없이 데이터를 출력하는 데 문제가 있습니다. 다음과 같은 하드 코드 된 인덱스 값을 갖는 구조체 인덱스 : $ ('# result') .val (obj.DATA [0] [3]);AJAX 호출에서 반환 된 JSON 데이터로 쉽게 작업하기 위해 Coldfusion이 필요합니다.
CFC에서 쿼리를 변경하면 [3]과 같은 인덱스를 하드 코딩하면 AJAX 결과를 변경해야합니다. 그래서 colmn 이름으로 반환 된 데이터를 참조하고 싶지만 알아낼 수는 없습니다. 내 AJAX 및 원격 CFC의 결과는 다음과 같습니다
$.ajax({
url: '/app/components/MailingsReport.cfc',
//POST method is used
type: "POST",
//pass the data
data: {
method: "getCreativeByID",
creativeID: $('#hdnCreativeID').val(),
datasource: "shopping_cart",
queryformat: "column"
},
success: function(response){
var obj = $.trim(response);
var obj = jQuery.parseJSON(obj);
//alert("response");
$('#txtSubject').val(obj.COLUMNS["SUBJECT"][0]);
}
}
});
CFC :
<!---gets the data for the creative--->
<cffunction name="getCreativeByID" returntype="any" returnformat="JSON" access="remote" output="No">
<cfargument name="creativeID" required="Yes" type="numeric" />
<cfargument name="datasource" required="Yes" type="string" />
<!--- Select creatives and {clickurl} --->
<cfquery name="qGetCreativeData" datasource="#arguments.datasource#">
exec sp_get_email_creative @creativeid = #arguments.creativeID#
</cfquery>
<cfreturn qGetCreativeData />
</cffunction>
결과 :
이
이 어떤 도움을 주시면 감사하겠습니다! 감사.
하나의 옵션은 returnformat을 텍스트로 변경하고 JSON을 직접 포맷하는 것입니다. 나는 coldfusion이주는 대문자 키가 마음에 들지 않기 때문에 보통 그렇게한다. 데이터를 객체의 배열로 반환합니다. –