Отображение ответа ajax с jquery
У меня есть Coldfusion cfc, который запрашивает данные в базе данных. Я хотел бы вызвать этот CFC и отобразить ответ Ajax в DIV. В конце концов я хотел бы отформатировать ответ с HTML. В настоящее время у меня возникают проблемы с отображением ответа. Это то, что я до сих пор.
Вот код: Asset.cfc
<cffunction name="Asset" access="remote" returntype="array">
<cfargument name="asset_id" type="string" required="yes">
<!--- Define the local scope. --->
<cfset var LOCAL = {} />
<cfset var qPics = "" />
<cfset var result = arrayNew(1) />
<cfset var PicStruct = '' />
<cfquery name="Pics">
SELECT DISTINCT aq.ID
FROM AAssignment a
INNER JOIN Assets aq ON aq.ID = a.Asset
WHERE a.AssetItem = <cfqueryparam cfsqltype="cf_sql_varchar" value="#arguments.assetgrp_id#">
</cfquery>
<cfloop query="Pics">
<cfset PicStruct = StructNew() />
<cfset PicStruct["value"] = ID />
<cfset ArrayAppend(result,PicStruct) />
</cfloop>
<cfset myResult="#result#">
<cfreturn myResult>
</cffunction>
Вот jquery
<script>
var caseid = <cfoutput>'#URL.ID#'</cfoutput>
$.ajax({
type:'GET',
url:'Asset.cfc?method=Asset&returnformat=json',
dataType: "json",
data: {
asset_id: caseid,
},
success:function(data) {
if(data) { // DO SOMETHING
$('#picoutput').html(data);
} else { // DO SOMETHING }
}
}
});
</script>
<div id="picoutput"></div>
Прямо сейчас я получаю этот ответ от cfc в Firebug.
[{"value":"3277C2B9-155D-D714-40143A59A8290252"}]
Однако это не будет отображаться в div.
2 ответа
Решение
Используйте data.value
success:function(data) {
if(data) { // DO SOMETHING
$('#picoutput').html(data[0].value);
} else { // DO SOMETHING }
}
Использовать тип данных в качестве HTML, если вы отправляете ответ в виде HTML
$.ajax({
type:'GET',
url:'Asset.cfc?method=Asset&returnformat=json',
dataType: "html", //<---- here
data: {
asset_id: caseid,
},
success:function(data) {
if(data) { // DO SOMETHING
$('#picoutput').html(data);
} else { // DO SOMETHING }
}
}
});