在Datatables的渲染中迭代AJAX url

时间:2018-04-09 02:26:33

标签: javascript jquery ajax datatables

问题是我正在尝试填充像这样的数据表

  $('#example tbody').on('click', 'tr', function () {
    var data = table.row( this ).data();
    alert( 'You clicked on '+data.name+'\'s row' );
     $.ajax({
 url: data.url,
 dataType: 'json',
 success: function(json){
 console.log(json)
   tableDos.rows.add([json]).draw();
 }
   });

} );

这样做是当有人从另一个已填充的数据表中选择一行时,它将从该行中提取所选JSON的URL(JSON来自SWAPI.CO API)并将其传递给填写这样的另一个数据表。

var tableDos = $('#exampleDos').DataTable({
"columns": [{
    "title": "Films",
    "data": "films",
    render: function (data, type, row, meta) {
        var currentCell = $("#exampleDos").DataTable().cells({"row":meta.row, "column":meta.col}).nodes(0);
  //      $.each(data, function (i, item){  

             $.ajax({
            url: data[0],
            success: function(json){
                console.log(json)
                   $(currentCell).text(json.title);          
            }
        });       
      //  })
        return null;
    }
  },
  {
    "title": "Vehicles",
    "data": "vehicles"
  },
   {
    "title": "Starships",
    "data": "starships"
  }
]
 });

棘手的部分来到这里,这个表接收的是来自这个JSON

  {
"name": "Luke Skywalker", 
"height": "172", 
"mass": "77", 
"hair_color": "blond", 
"skin_color": "fair", 
"eye_color": "blue", 
"birth_year": "19BBY", 
"gender": "male", 
"homeworld": "https://swapi.co/api/planets/1/", 
"films": [
    "https://swapi.co/api/films/2/", 
    "https://swapi.co/api/films/6/", 
    "https://swapi.co/api/films/3/", 
    "https://swapi.co/api/films/1/", 
    "https://swapi.co/api/films/7/"
], 
"species": [
    "https://swapi.co/api/species/1/"
], 
"vehicles": [
    "https://swapi.co/api/vehicles/14/", 
    "https://swapi.co/api/vehicles/30/"
], 
"starships": [
    "https://swapi.co/api/starships/12/", 
    "https://swapi.co/api/starships/22/"
], 
"created": "2014-12-09T13:50:51.644000Z", 
"edited": "2014-12-20T21:17:56.891000Z", 
"url": "https://swapi.co/api/people/1/"
  }

所以我可以看到我的桌子是以阵列和URL的形式接收电影,车辆和星舰,所以我必须做另一个AJAX呼叫,你可以在表格中看到例如" films&#34 ;所以我在AJAX网址中我必须遍历电影ARRAY,但它会自动迭代而不使用循环或每个,我不能让它工作。这看起来很令人困惑,但请亲自检查一下。

https://jsfiddle.net/um8tmgq2/2/

0 个答案:

没有答案