在CFIF中使用JSON响应

时间:2017-10-29 08:55:57

标签: json ajax coldfusion

是否可以在CFIF声明中使用response.DATA [i] [j]。

chkUsernameUnique = function(theUsername){
  $.ajax({
    type: "GET",
    url: "/book.cfc",
    data: {method: "testFunction", datum: $('#date').val(), returnFormat: "JSON"},
    dataType: "json", 
    success: function(response) {
    var str = '<table><tr>';
    var i;
    var j;

    //loop over each column name for headers
    for (i = 0; i < response.COLUMNS.length; i++) {
          str += '<th>' + response.COLUMNS[i] + '</th>';
      }

    str += '</tr>';

    //loop over each row
    for (i = 0; i < response.DATA.length; i++) {
      str += '<tr>';
      //loop over each column
      for (j = 0; j < response.DATA[i].length; j++) {
          str += '<td>' + response.DATA[i][j] + '</td>';
      }
      str += '</tr>';
    }
    str += '</table>';

    $('#debugDiv').html(str);
},
error: function(ErrorMsg) {
   console.log('Error');
}
});
}

我想做的是:

<cfif response.DATA[i][j] is 3> str += '<td>test</td>';</cfif>

返回以下错误消息:变量[RESPONSE]不存在。

1 个答案:

答案 0 :(得分:1)

response变量是您的AJAX请求的服务器响应,您正在客户端使用它。因此,您仍处于JavaScript领域:

if (response.DATA[i][j] == 3) { str += '<td>test</td>'; }

ColdFusion(即<cfif>)在服务器端执行,因此不能用于在运行时评估数据(在浏览器请求URI之后)。