使用JQuery JSON打印MySQL查询结果,而不知道数组键的名称

时间:2014-11-24 10:47:25

标签: php jquery mysql json symfony

我正在网站上建立一个设施(使用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的内容。

2 个答案:

答案 0 :(得分:0)

也许试试这个,并显示console.log(数据)的输出;

console.log(data);
var data = $.parseJSON(data);

答案 1 :(得分:0)

$.each(data, function() {
  $.each(this, function(k, v) {
 /// do stuff
});
});