Take the 2-minute tour ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.

I want to create table with value from array 2 dimention from json. this is I made code:

data

 var data = {"ver[
    {"0":"1","id_pemasang":"1","1":"1","id_jenis_pemasang":"1","2":null,"npwp":null,"3":"Yos Sudarso","nama":"Yos Sudarso","4":"Perumahan Griya Perwita No.10","alamat":"Perumahan Griya Perwita No.10","5":"Yogyakarta","kota":"Yogyakarta","6":"0274-541056","telepon":"0274-541056","7":"08134570378","handphone":"08134570378","8":"0","diskon":"0"},
    {"0":"2","id_pemasang":"2","1":"2","id_jenis_pemasang":"2","2":"34.081.203.1-342.000","npwp":"34.081.203.1-342.000","3":"CV. Prima Agung","nama":"CV. Prima Agung","4":"Jl. Cenderawasih No.72 Warungboto","alamat":"Jl. Cenderawasih No.72 Warungboto","5":"Yogyakarta","kota":"Yogyakarta","6":"0274-878906","telepon":"0274-878906","7":null,"handphone":null,"8":"5","diskon":"5"},
    {"0":"3","id_pemasang":"3","1":"2","id_jenis_pemasang":"2","2":null,"npwp":null,"3":"PT. Tampil Jaya","nama":"PT. Tampil Jaya","4":"Jl. Alamanda No.3","alamat":"Jl. Alamanda No.3","5":"Yogyakarta","kota":"Yogyakarta","6":"0274-552233","telepon":"0274-552233","7":null,"handphone":null,"8":"20","diskon":"20"}
 ]};

html

<table class="table table-striped table-bordered table-data-omset">
     <tbody></tbody>
</table>

jquery

var tableOmset = $('table.table-data-omset');
var tbodyTableOmset = tableOmset.find('tbody');
var rowTbodyTableOmset = '<tr></tr>';

for(var a=0; a<data.ver.length; a++){
    tbodyTableOmset.append(rowTbodyTableOmset);                       
    for(var b=0; b<5; b++){
        if(data.ver[a][b] == null){
             data.ver[a][b]= '';
        }
        tbodyTableOmset.find('tr').append('<td>'+data.ver[a][b]+'</td>');
     }
 }

but after I execute or run, the result has success, but it appear not good. this is result image:

enter image description here

I hope you can help me from this problem, thank you

share|improve this question
    
and the questionmark is... ? btw your data is errata jsonlint.com –  Roko C. Buljan Mar 29 '13 at 12:11
    
your json is invalid.. bytheway –  bipen Mar 29 '13 at 12:12
    
@bipen: no, my json is valid, check again. –  user1878292 Mar 29 '13 at 12:21
    
hahaha.. sorry to say this.. but again its invalid ...u forgot : ..i could have edited this... but not sure if that is a typo or if that is what you are getting.. if that is what your are gettin then the problem is in JSON and not in jquery..:) –  bipen Mar 29 '13 at 12:22
    
stackoverflow.com/questions/1051061/… –  Ejay Mar 29 '13 at 12:23

2 Answers 2

up vote 1 down vote accepted

In your for loops create your table elements in string using trTableOmset +=. Than using tbodyTableOmset.append(trTableOmset); you're done!

LIVE DEMO

How it should look:

var tableOmset = $('table.table-data-omset');
var tbodyTableOmset = tableOmset.find('tbody');
var trTableOmset = '';
for(var a=0; a<data.ver.length; a++){
    trTableOmset += '<tr>'  ;                    
    for(var b=0; b<18; b++){          // 5 or 18 ?
        if(data.ver[a][b] === null){
             data.ver[a][b]= '';
        }
        trTableOmset += '<td>'+ data.ver[a][b] +'</td>';
     }
    trTableOmset += '</tr>' ;
 }
tbodyTableOmset.append(trTableOmset);

Fixed DATA:

var data = {
    "ver": [
        {
            "0": "1",
            "id_pemasang": "1",
            "1": "1",
            "id_jenis_pemasang": "1",
            "2": null,
            "npwp": null,
            "3": "YosSudarso",
            "nama": "YosSudarso",
            "4": "PerumahanGriyaPerwitaNo.10",
            "alamat": "PerumahanGriyaPerwitaNo.10",
            "5": "Yogyakarta",
            "kota": "Yogyakarta",
            "6": "0274-541056",
            "telepon": "0274-541056",
            "7": "08134570378",
            "handphone": "08134570378",
            "8": "0",
            "diskon": "0"
        },
        {
            "0": "2",
            "id_pemasang": "2",
            "1": "2",
            "id_jenis_pemasang": "2",
            "2": "34.081.203.1-342.000",
            "npwp": "34.081.203.1-342.000",
            "3": "CV.PrimaAgung",
            "nama": "CV.PrimaAgung",
            "4": "Jl.CenderawasihNo.72Warungboto",
            "alamat": "Jl.CenderawasihNo.72Warungboto",
            "5": "Yogyakarta",
            "kota": "Yogyakarta",
            "6": "0274-878906",
            "telepon": "0274-878906",
            "7": null,
            "handphone": null,
            "8": "5",
            "diskon": "5"
        },
        {
            "0": "3",
            "id_pemasang": "3",
            "1": "2",
            "id_jenis_pemasang": "2",
            "2": null,
            "npwp": null,
            "3": "PT.TampilJaya",
            "nama": "PT.TampilJaya",
            "4": "Jl.AlamandaNo.3",
            "alamat": "Jl.AlamandaNo.3",
            "5": "Yogyakarta",
            "kota": "Yogyakarta",
            "6": "0274-552233",
            "telepon": "0274-552233",
            "7": null,
            "handphone": null,
            "8": "20",
            "diskon": "20"
        }
    ]
};
share|improve this answer
    
yeah, your answer that's all right. I forget about += can help this. thank you very much guys :) –  user1878292 Mar 29 '13 at 12:38
    
@user1878292 you're welcome –  Roko C. Buljan Mar 29 '13 at 12:47

Example

JS

function ToTable(dataArray)
{
    html = '<table>'; 
    var len = dataArray.length;
    for(var i = 0; i < len; i++){
        html += '<tr>'; 
        for(var key in dataArray[i]){
            html += '<td>' + dataArray[i][key] + '</td>'; 
        }
        html += '</tr>';
    }
    html += '</table>'; 
    return html; 
}

data = {
    ver: [
        {"0":"1","id_pemasang":"1","1":"1","id_jenis_pemasang":"1","2":null,"npwp":null,"3":"Yos Sudarso","nama":"Yos Sudarso","4":"Perumahan Griya Perwita No.10","alamat":"Perumahan Griya Perwita No.10","5":"Yogyakarta","kota":"Yogyakarta","6":"0274-541056","telepon":"0274-541056","7":"08134570378","handphone":"08134570378","8":"0","diskon":"0"},
        {"0":"2","id_pemasang":"2","1":"2","id_jenis_pemasang":"2","2":"34.081.203.1-342.000","npwp":"34.081.203.1-342.000","3":"CV. Prima Agung","nama":"CV. Prima Agung","4":"Jl. Cenderawasih No.72 Warungboto","alamat":"Jl. Cenderawasih No.72 Warungboto","5":"Yogyakarta","kota":"Yogyakarta","6":"0274-878906","telepon":"0274-878906","7":null,"handphone":null,"8":"5","diskon":"5"},
        {"0":"3","id_pemasang":"3","1":"2","id_jenis_pemasang":"2","2":null,"npwp":null,"3":"PT. Tampil Jaya","nama":"PT. Tampil Jaya","4":"Jl. Alamanda No.3","alamat":"Jl. Alamanda No.3","5":"Yogyakarta","kota":"Yogyakarta","6":"0274-552233","telepon":"0274-552233","7":null,"handphone":null,"8":"20","diskon":"20"}
    ] 
};

document.getElementById('destination').innerHTML = ToTable(data.ver); 

HTML

<div id='destination'></div>
share|improve this answer
    
for(i=N; i<V; i++){ is faster, and ver should be "ver" following the precise valid JSON structure recipes. –  Roko C. Buljan Mar 29 '13 at 12:24
    
@roXon - True, but then I need to know the number of columns ahead of time. Probably better if his JSON were a 2 dimensional array. Smaller payload and easier to iterate over. –  Brandon Boone Mar 29 '13 at 12:28

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.