如何从 jquery 中的 json 格式对象填充 html 数据表

Posted

技术标签:

【中文标题】如何从 jquery 中的 json 格式对象填充 html 数据表【英文标题】:How to populate html datatable from a json formatted object in jquery 【发布时间】:2021-02-17 19:56:53 【问题描述】:

我在从 json 对象访问数据时遇到问题:

json 对象来自数据库:


   "status":200,
   "remarks":[
      
         "supplier_id":"2020111",
         "supplier_name":"John Doe",
         "contact_number":"sdfsdfsd",
         "date_entry":"2020-11-05 10:04:44"
      ,
      
         "supplier_id":"2020112",
         "supplier_name":"Jerwen Reloz",
         "contact_number":"sd",
         "date_entry":"2020-11-05 10:50:03"
      ,
      
         "supplier_id":"2020113",
         "supplier_name":"Danny Cane",
         "contact_number":"sd",
         "date_entry":"2020-11-05 10:50:07"
      
   ]

我只想用这些数据填充我的html datatable,我正在尝试阅读datatables 文档,但我找不到合适的解决方案。

这是我处理请求的 jquery:

$.ajax(
      type: 'GET',
      url: '/supplier-list',
      dataType: 'json',
      encode: true
)
.done(function (data) 
      console.log(data) //the format defined above
      //i want to populate datatable with this data.
);

还有我的 html 表格:

    <table id="example1" class="table table-bordered table-striped">
    <thead>
        <tr>
            <th>Supplier ID</th>
            <th>Name</th>
            <th>Contact</th>
            <th>Date Entry</th>
        </tr>
    </thead>
    <tbody>
        
    </tbody>
    <tfoot>
        <tr>
            <th>Supplier ID</th>
            <th>Name</th>
            <th>Contact</th>
            <th>Date Entry</th>
        </tr>
    </tfoot>
</table>

谢谢。

【问题讨论】:

我正在使用 laravel-8 【参考方案1】:

抱歉,这是修改版。我在 jsfiddle 上测试过

var json = 
   "status":200,
   "remarks":[
      
         "supplier_id":"2020111",
         "supplier_name":"John Doe",
         "contact_number":"sdfsdfsd",
         "date_entry":"2020-11-05 10:04:44"
      ,
      
         "supplier_id":"2020112",
         "supplier_name":"Jerwen Reloz",
         "contact_number":"sd",
         "date_entry":"2020-11-05 10:50:03"
      ,
      
         "supplier_id":"2020113",
         "supplier_name":"Danny Cane",
         "contact_number":"sd",
         "date_entry":"2020-11-05 10:50:07"
      
   ]
;

console.log(json);
  var row;
   
for(var i=0; i<json['remarks'].length; i++) 
    var array = json['remarks'];
    row +=  " <tr>" +
   "                <td> " + array[i].supplier_id   + "</td>" +
   "                <td> " + array[i].supplier_name   + "</td>" +
   "                <td> " + array[i].contact_number   + "</td>" +
   "                <td> " + array[i].date_entry   + "</td>"+
     "</tr>";
    

  var table = 
   " <thead> " +
   "     <tr> " +
   "         <th>Supplier ID</th> " +
   "         <th>Name</th> " +
   "         <th>Contact</th> " +
   "         <th>Date Entry</th> " +
   "     </tr> " +
   " </thead> " +
   " <tbody> " +
   "            <tr> " +    row +  " </tr> " +
   " </tbody> " ;
$('#example1').html(table);

https://jsfiddle.net/e8g254uh/10/

【讨论】:

以上是关于如何从 jquery 中的 json 格式对象填充 html 数据表的主要内容,如果未能解决你的问题,请参考以下文章

如何将对象从 JSON 附加到 HTML 中的 div?

如何使用 JSON 数据填充下拉列表作为 jQuery 中的 ajax 响应

PHP-AJAX:如何通过 php/json 数组从查询中填充 jquery 数据表

jquery用ajax方式从后台获取json数据后如何将内容填充到下拉列表

jQuery、CORS、JSON(无填充)和身份验证问题

如何遍历这个json对象(不使用jquery)[重复]