以正确的方式使用AJAX JSON PHP在表中显示数据

时间:2016-11-14 04:36:46

标签: php jquery mysql json ajax

我正在制作管理员小组。所以我想在页面加载时显示表中数据库的数据。我很困惑,我从div后端显示整个表或只放数据?

例如:

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

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

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

如果这是在表格中打印数据的方式,那么它将立即打印该行。每个都不是完整的数据。

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:3)

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

  1. 客户端和服务器之间的代码占用量较小。
  2. 能够更改视图,如果是JSON,则不与HTML绑定。
  3. 将来,如果您想要更改结构,或者如果您需要在不同的页面中使用相同的输出,以不同的方式,您不需要更改底层PHP,相反,您可以只是改变渲染机制。

    让服务器发送如下的JSON输出:

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

    让JavaScript完成剩下的工作。

    &#13;
    &#13;
    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;
    });
    &#13;
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    &#13;
    &#13;
    &#13;

答案 1 :(得分:0)

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

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

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

让我知道任何疑问