<!DOCTYPE html>
<html>
  <head>
    <script src="https://code.jquery.com/jquery-1.11.3.min.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>
    <meta charset=utf-8 />
    <title>DataTables - JS Bin</title>
  </head>
  <body>
    <div class="container">
      <table id="example" class="display nowrap" width="100%">
        <thead>
          <tr>
            <th>Name</th>
            <th>status</th>
            <th>type</th>
            <th>season</th>
            <th>products</th>
          </tr>
        </thead>
    
      </table>
    </div>
  </body>
</html>
 
body {
  font: 90%/1.45em "Helvetica Neue", HelveticaNeue, Verdana, Arial, Helvetica, sans-serif;
  margin: 0;
  padding: 0;
  color: #333;
  background-color: #fff;
}
 
$(document).ready( function () {
  
  var data = {
"OfferDetails": [
        {
            "OfferName": "Full Offer",
            "OfferStatus": "Available",
            "OfferType": "Primary",
            "Season": "Season 2020/2021",
            "Products": [
                {
                    "Name": "Car Pass - Full",
                    "MemberOfferProductID": "108906",
                    "ProductNumber": "P000310",
                    "Quantity": "1"
                },
                {
                    "Name": "Members Subscriptions - Full Members",
                    "MemberOfferProductID": "108904",
                    "ProductNumber": "P000158",
                    "Quantity": "1"
                },
                {
                    "Name": "Members Subscriptions - Full Members Guest",
                    "MemberOfferProductID": "108905",
                    "ProductNumber": "P000159",
                    "Quantity": "1"
                },
                {
                    "Name": "Full Member Joining Fees",
                    "MemberOfferProductID": "108907",
                    "ProductNumber": "P000665",
                    "Quantity": "1"
                }
            ]
        },
        {
            "OfferName": "Absentee Full Offer",
            "OfferStatus": "Available",
            "OfferType": "Alternate",
            "Season": "Season 2020/2021",
            "Products": [
                {
                    "Name": "Full Member Joining Fees",
                    "MemberOfferProductID": "108909",
                    "ProductNumber": "P000665",
                    "Quantity": "1"
                },
                {
                    "Name": "Annual Absentee Fee Full",
                    "MemberOfferProductID": "108908",
                    "ProductNumber": "P000326",
                    "Quantity": "1"
                }
            ]
        }
    ]
  };
  
  var table = $('#example').DataTable({
    data: data.OfferDetails,
    columns: [
      {data: 'OfferName'},
      {data: 'OfferStatus'},
      {data: 'OfferType'},
      {data: 'Season'},
      {data: 'Products',
       render: function(data) {
         let str = "<table class='child'><thead><tr><th>Name</th><th>ID</th><th>#</th><th>Quantity</th></thead>"
         str+= "<tbody>"
         for (i = 0; i< data.length; i++) {
           str+= "<tr>"
           str+= "<td>" + data[i].Name + "</td>"
           str+= "<td>" + data[i].MemberOfferProductID + "</td>"
           str+= "<td>" + data[i].ProductNumber + "</td>"
           str+= "<td>" + data[i].Quantity + "</td>"
           str+= "</tr>"
         }
         
         str+= "</tbody></table>"
         return str;
         
       }},
    ],
      initComplete: function() {
      $('.child').DataTable({dom: 't'});
      }
  });
} );
Output 300px

You can jump to the latest bin by adding /latest to your URL

Dismiss x
public
Bin info
anonymouspro
0viewers