我正在网站上建立一个设施(使用Symfony2),允许用户使用AJAX创建报告并在屏幕上显示它们。这些报告实际上是动态创建的SQL语句,然后在数据库上运行。
我遇到的问题是,如果不先知道报告中使用了哪些字段,我就无法理解将这些结果显示在屏幕上的方法。查询可能只包含一个表中的2个字段,或15个字段,我希望代码足够强大,可以处理这个问题。
到目前为止,这是我正在使用的代码:
$.ajax({
type: 'POST',
url: urlLink,
success: function (data) {
var Type = (data.recordType);
var Results = (data.results);
var Name = (data.name);
var Description = (data.description);
var Titles = (data.titles);
$('#reportName').text(Name);
$('#reportDescription').text(Description);
$('#listTable > tbody:last').empty();
$('#listTable > thead:last').empty();
$('#listTable > thead:last').append('<tr>'+Titles+'</tr>');
$.each(Results, function(i, item) {
$('#listTable > tbody:last').append('<tr><td>' + Results[i] + '</td><td>' + Results[i] + '</td><td>' + Results[i] + '</td><td>' + Results[i] + '</td><td>' + Results[i] + '</td><td>' + Results[i] + '</td></tr>');
});
}
});
变量Titles
来自查询,因为当用户向数据库添加字段时,这些字段会被添加到字符串中,然后我会在控制器中使用PHP进行爆炸。
在foreach中,每列都会返回[object Object]
。当我从代码中删除[i]
并将其替换为.column-name
时,它将会起作用。但这正是我想要避免的。我希望有类似于Table Titles的内容。
答案 0 :(得分:0)
也许试试这个,并显示console.log(数据)的输出;
console.log(data);
var data = $.parseJSON(data);
答案 1 :(得分:0)
$.each(data, function() {
$.each(this, function(k, v) {
/// do stuff
});
});