【问题标题】:Display Data In Table Using AJAX JSON PHP In Correct Way以正确的方式使用 AJAX JSON PHP 在表格中显示数据
【发布时间】:2016-11-14 04:36:46
【问题描述】:

我正在制作一个管理面板。所以我想在页面加载时在表中显示数据库中的数据。我很困惑,我在 div 中从后端显示整个表格还是只放置数据??

例如:

success:function(response){
    $("#result").html(result);
}

这将在结果 div 中显示整个表。这将来自后端。

 success:function(response){
        $("#result").html('<table><tr><td>'+response.name+'</td><td>'+response.password+'</td></tr>');
    }

如果这是在表格中打印数据的方式,那么它将一次只打印行。不是每个中的完整数据。

请帮我解决这个问题。

【问题讨论】:

  • 最好在分页表中显示数据。这取决于您要向用户显示什么,有时所有数据都与用户没有太大关系,因此最好显示所有记录的一部分
  • 所以...在哪里显示来自 json 的 id 以用于编辑表单。默认为或在隐藏字段中设置 id
  • @SachinSanchaniya 您想接受以下任何答案吗?

标签: php jquery mysql json ajax


【解决方案1】:

从后端获取数据作为 JSON 输出并使用响应中的 JSON 在客户端构建表显然会更好。主要原因是:

  1. 客户端和服务器之间的代码占用更少。
  2. 能够更改视图,如果是 JSON,则不与 HTML 绑定。

以后,如果你想改变结构,或者如果你需要在不同的页面中使用相同的输出,以不同的方式,你不需要改变底层的 PHP,你可以只改变渲染机制。

让服务器发出这样的 JSON 输出:

[{
  "name": "Praveen",
  "age": 27
}, {
  "name": "Kumar",
  "age": 25
}]

让 JavaScript 完成剩下的工作。

var jsonResponse = [{
  "name": "Praveen",
  "age": 27
}, {
  "name": "Kumar",
  "age": 25
}];
$('body').append(function () {
  var table = $('<table />');
  var headr = $('<tr />');
  headr.append('<th>Name</th>');
  headr.append('<th>Age</th>');
  headr.appendTo(table);
  $.each(jsonResponse, function (i, v) {
    var tr = $('<tr />');
    tr.append('<td>' + v.name + '</td>');
    tr.append('<td>' + v.age + '</td>');
    tr.appendTo(table);
  });
  return table;
});
&lt;script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"&gt;&lt;/script&gt;

【讨论】:

  • 我想。这很耗时.. 在后端,我将使用 while 循环来创建 json 数组,而在前端,我将使用 foreach 循环来设置 json 变量。所以最好在 Response 中使用后端的直接表??
  • @SachinSanchaniya IMO 提供一张桌子不是一个好主意。但是,是的,如果你觉得这样更好,你可以继续。
  • @SachinSanchaniya 如果我的回答对你有帮助,请点击勾选按钮接受我的回答。
【解决方案2】:

您的两个选项都正确,但我发现将逻辑和视图分开是一种很好的做法,这意味着在前端生成 html 视图很好。

现在,要生成包含多行的表格视图,您的响应数据应该正确结构化,例如 json 对象数组。

如果你得到我的解释,那么你可以关注这个帖子: Loop through a JSON array to create a Table

如有任何疑问,请告诉我

【讨论】:

  • 大声笑。哇。那很快! :D
  • 好的。但是在我的第二个示例中得到 ajax 响应之后,它会影响我创建分页代码时的分页和搜索??
  • 在第二个示例中,您仅硬编码了一行。按照 Praveen 提供的示例和我给出的链接进行操作。现在,如果场景是您有 100 行,并且您想一次显示 10 行。然后,您还需要跟踪您的页码。您可以粘贴您的代码,以便我可以根据您的需要为您编写示例代码。我还想推荐 Datatable JS 库供您检查。
  • 我想。这很耗时.. 在后端,我将使用 while 循环来创建 json 数组,而在前端,我将使用 foreach 循环来设置 json 变量。所以最好在 Response 中使用后端的直接表??
  • 就时间而言,这两种解决方案都非常耗时。在服务器端或客户端,您需要时间来处理循环。根据我的知识和实践,将业务逻辑与表示分离是一种流行的时尚。同样,如果我们考虑时间,您知道 PHP 请求在服务器中的队列中处理,因此减少服务器负载并使其尽快释放不是更好吗?
猜你喜欢
  • 2019-10-08
  • 1970-01-01
  • 1970-01-01
  • 2012-05-02
  • 1970-01-01
  • 2019-06-26
  • 2020-07-01
  • 2017-09-20
  • 1970-01-01
相关资源
最近更新 更多