Я упростил этот пример настолько, насколько смогу. У меня есть функция дистанционного:
<cfcomponent output="false">
<cffunction name="Read" access="remote" output="false">
<cfset var local = {}>
<cfquery name="local.qry" datasource="myDatasource">
SELECT PersonID,FirstName,LastName FROM Person
</cfquery>
<cfreturn local.qry>
</cffunction>
</cfcomponent>
и используя метод .ajax JQuery $, я хотел бы сделать маркированный список всех.
<!DOCTYPE HTML>
<html>
<head>
<script src="http://www.google.com/jsapi"></script>
<script type="text/javascript">
google.load("jquery", "1");
</script>
<script type="text/javascript">
jQuery(function($){
$.ajax({
url: "Remote/Person.cfc?method=Read&ReturnFormat=json",
success: function(data){
var str = '<ul>';
// This is where I need help:
for (var I=0; I<data.length; I++) {
str += '<li>' + I + data[I][1]+ '</li>'
}
str += '</ul>';
$('body').html(str);
},
error: function(ErrorMsg){
console.log("Error");
}
});
});
</script>
</head>
<body>
</body>
</html>
Часть, где я потеряна, является местом, где я перебираю данные. Я предпочитаю использовать метод jQuery $ .ajax, потому что понимаю, что $ .get и $ .post не имеют захвата ошибок.
Я не знаю, как обращаться с JSON, возвращенным из cfc.
Спасибо, что помогли мне понять, что данные были в шапках, пропустили это. Однако ваш ответ также страдает от одной и той же проблемы. 'var data = response.data;' должно быть 'var data = response.DATA;' также зацикливаются ваши циклы for. Первым должен быть 'response.COLUMNS.length' и' response.COLUMNS [i] ', а ваш второй и третий должны быть' data.length' и 'data [i] .length',' data [i] [j] 'соответственно. – anomareh
К сожалению. Я думал, что параметр был данными и забыл о переназначении. Итак, я просто изменил «данные» на «ответ» и удалил «data = response.data». – Lee