如果某些td使用jquery json数据包含相同的id,则为Rowspan

我有这样的表

 ===============
 | 1 |  1 |  1 |
       |  | === |
       |  |  2 |
       |  | === |
       |  |  3 |
       =========
       |  2 |  1 |
       |  | === |
       |  |  2 |
       |  | === |
       |  |  3 |
 ===============
 | 2 |  1 |  1 |
       |  | === |
       |  |  2 |
       |  | === |
       |  |  3 |
       =========
       |  2 |  1 |
       |  | === |
       |  |  2 |
       |  | === |
       |  |  3 |
 ==============

如果数据具有相同的id,使用jquery json数据,如何根据数据库数据创建这样的表?

编辑!

这是我的ajaxfunction

$.ajax({ method:'POST', async:true, url:"dashboard/showTableKondisi", datatype:'json', success:function(data){ var json = $.parseJSON(data); var html = ''; var i; if(Object.keys(json.data).length > 0){ for(i=0,no=1,no2=1;i<Object.keys(json.data).length;i++){ var length_data_sebab_new = 0 for(var x=0; x<Object.keys(json.data[i].data_sebab).length; x++){ for(var y=0; y<Object.keys(json.data[i].data_sebab[x].data_rekomendasi).length; y++){ length_data_sebab_new = Object.keys(json.data[i].data_sebab[x].data_rekomendasi).length; } } var length_data_sebab_new_new = length_data_sebab_new; var length_data_sebab = (Object.keys(json.data[i].data_sebab).length)-(-1)-(-length_data_sebab_new_new) ; html+=''+no+'

'+json.data[i].memo_kondisi+'
Rp '+json.data[i].nilai_temuan+''; for(var x=0; x<Object.keys(json.data[i].data_sebab).length; x++){ var length_data_rekomendasi = (Object.keys(json.data[i].data_sebab[x].data_rekomendasi).length)-(-1); // console.log(Object.keys(json.data[i].data_sebab[x].data_rekomendasi).length); no2 = x-(-1); html+=''+no2+'

'+json.data[i].data_sebab[x].id+'
Rp '+json.data[i].data_sebab[x].nilai_temuan+''; for(var y=0; y<Object.keys(json.data[i].data_sebab[x].data_rekomendasi).length; y++){ no3 = y-(-1); html+=''+no3+'

'+json.data[i].data_sebab[x].data_rekomendasi[y].id+'
Rp aaa'+json.data[i].data_sebab[x].data_rekomendasi[y].nilai_temuan+''; // } html+=''; } html+=''; no+=1; no2+=1; no } }else{ html+=''; } $('#kondisi_tabel').html(html); // $('#s_sub_kondisi').html(html2); }, error:function(){ alert('tidak dapat membaca database') } })

编辑3

到目前为止,我的进展就像这样。 我已经让这个表工作得很好但是当同一行的第二个td,td右边有另一个td时,它就崩溃了

之前

后

我的新JSON数据

2017年7月24日更新

 { "data": [ { "id": "14", "memo_kondisi": "Kekurangan pekerjaan", "total_row": "5", "nilai_temuan": "1.000.000", "data_sebab": [ { "id": "15", "id_sebab": "", "id_sub_sebab": "", "memo_sebab": "coba", "data_rekomendasi": [ { "id": "25", "id_rekomendasi": "10", "id_sub_rekomendasi": "", "id_s_sub_rekomendasi": "", "nilai_rekomendasi": "0" }, { "id": "26", "id_rekomendasi": "10", "id_sub_rekomendasi": "", "id_s_sub_rekomendasi": "", "nilai_rekomendasi": "0" }, { "id": "31", "id_rekomendasi": "10", "id_sub_rekomendasi": "", "id_s_sub_rekomendasi": "", "nilai_rekomendasi": "0" } ] }, { "id": "16", "id_sebab": "", "id_sub_sebab": "", "memo_sebab": "coba", "data_rekomendasi": [ { "id": "34", "id_rekomendasi": "10", "id_sub_rekomendasi": "", "id_s_sub_rekomendasi": "", "nilai_rekomendasi": "0" }, { "id": "35", "id_rekomendasi": "10", "id_sub_rekomendasi": "", "id_s_sub_rekomendasi": "", "nilai_rekomendasi": "0" } ] } ] }, { "id": "15", "memo_kondisi": "Kekurangan pekerjaan", "total_row": "2", "nilai_temuan": "1.000.000", "data_sebab": [ { "id": "5", "id_sebab": "", "id_sub_sebab": "", "memo_sebab": "coba", "data_rekomendasi": [] }, { "id": "10", "id_sebab": "", "id_sub_sebab": "", "memo_sebab": "coba", "data_rekomendasi": [] } ] }, { "id": "16", "memo_kondisi": "", "total_row": "2", "nilai_temuan": "0", "data_sebab": [ { "id": "9", "id_sebab": "", "id_sub_sebab": "", "memo_sebab": "coba", "data_rekomendasi": [] }, { "id": "12", "id_sebab": "", "id_sub_sebab": "", "memo_sebab": "coba", "data_rekomendasi": [] } ] } ] } 

我终于得到了解决方案。

如果这个答案有用,我会在下面为其他观众写下我的语法和表格

我有三个表一个表与另一个有关系

旧代码

 $.ajax({ method:'POST', async:true, url:"dashboard/showTableKondisi", datatype:'json', success:function(data){ var json = $.parseJSON(data); var html = ''; var i; if(Object.keys(json.data).length > 0){ for(i=0,no=1,no2=1;i'+no+'

'+json.data[i].memo_kondisi+'
Rp '+json.data[i].nilai_temuan+''; for(var x=0; x'+no2+'

'+json.data[i].data_sebab[x].id+'
Rp '+json.data[i].data_sebab[x].nilai_temuan+''; for(var y=0; y

'+json.data[i].data_sebab[x].data_rekomendasi[y].id+'
Rp aaa'+json.data[i].data_sebab[x].data_rekomendasi[y].nilai_temuan+''; // } html+=''; } html+=''; no+=1; no2+=1; no } }else{ html+=''; } $('#kondisi_tabel').html(html); // $('#s_sub_kondisi').html(html2); }, error:function(){ alert('tidak dapat membaca database') } })

新规范

 $.ajax({ method:'POST', async:true, url:"dashboard/showTableKondisi", datatype:'json', success:function(data){ var json = $.parseJSON(data); // var html that will contain tr and table that will add to te table based on id #kondisi_tabel ( i used bootstrap table with id) var html = ''; var i; if(Object.keys(json.data).length > 0){ for(i=0,no=1,no2=1;i'+no+'

'+json.data[i].memo_kondisi+'
Rp '+json.data[i].nilai_temuan+''; for(var x=0; x'+no2+'

'+json.data[i].data_sebab[x].id+'
Rp '+json.data[i].data_sebab[x].nilai_temuan+''; if ( Object.keys(json.data[i].data_sebab[x].data_rekomendasi).length == '' ){ var tr = ''; }else{ var tr = ''; } html+= tr; for(var y=0; y

'+json.data[i].data_sebab[x].data_rekomendasi[y].id+'
Rp aaa'+json.data[i].data_sebab[x].data_rekomendasi[y].nilai_temuan+''; } } html+=''; no+=1; no2+=1; no } }else{ html+=''; } // this is and id table that will $('#kondisi_tabel').html(html); }, error:function(){ alert('function not found') } })

之前

之前

后

我知道这不是最好的解决方案,但它对我有用,所以如果有人有更好的解决方案,如果你可以分享解决方案,真的很赞赏谢谢:)

对于我的ajax呼叫响应(json文本),请再次检查我的问题,我已经更新了它