2017-05-04 1 views
0

私はこのような値を表示している1つのhtmlを持っています。動的テーブル値を追加するには

<table id="myTable"> 
    <tr class="header"></tr> 
    <tr><td>Germany</td></tr> 
    <tr><td>Sweden</td></tr> 
    <tr><td>UK</td></tr> 
    <tr><td>Germany</td></tr> 
    <tr><td>Canada</td></tr> 
    <tr><td>Italy</td></tr> 
    <tr><td>UK</td></tr> 
    <tr><td>France</td></tr> 
</table> 

ここで、テーブルをjson値に依存させたいと思います。そのために私は関数の下に書いていますが、運がうまくいかない理由はわかりません。これらのJSON値をテーブルに追加したいのですが。テーブルは動的でなければなりません。また、URLも動的です。

function foo(myURL,callback) { 
     var httpRequest = new XMLHttpRequest(); 
     httpRequest.open('GET', myURL,true); 
     httpRequest.onreadystatechange = function() { 
      if(httpRequest.readyState === XMLHttpRequest.DONE && httpRequest.status === 200) { 
       // trigger your callback function 
       callback(httpRequest.responseText); 
      } 
     }; 
     httpRequest.send(); 
    } 

    foo(function(data) { 
     var jsonc = JSON.parse(data); 
     var new_opt=""; 
     for(i=0;i<jsonc.length;i++) 
     { 
      new_opt+='<td>'+jsonc[i]['VALUE']+'</td>'; 
     } 
     document.getElementById('choose').innerHTML =new_opt; 
    }); 

マイJSON

[ 
    { 
     "ID" : 0, 
     "VALUE" : "United State" 
    },{ 
     "ID" : 1, 
     "VALUE" : "United Kingdom" 
    },{ 
     "ID" : 2, 
     "VALUE" : "Afghanistan" 
    },{ 
     "ID" : 3, 
     "VALUE" : "Aland Islands" 
    },{ 
     "ID" : 4, 
     "VALUE" : "Albania" 
    } 
] 
+1

それはタイプミスかどうか分からないのですが、あなたはURLなし 'foo'を呼んでいます。 –

+0

id = "choose"の要素はありません! –

+0

@SouhailBenSlimene "choose"はdiv内にあります。テーブルは – David

答えて

0

あなたはJSONの値を取得する場合、次にこれを行うことができ、

var obj = JSON.parse(data); 
$("#myTable tbody tr").remove(); 
makeTableFromJson(obj); 

関数makeTableFromJson(データ)

function makeTableFromJson(data) { 
for (var i = 0; i < data.length; i++) { 
    var tr = $("<tr>"); 
    var td = $("<td>"); 
    td.append(i + 1); 
    var td0 = $("<td>"); 
    td0.append(data[i]['jsonVal']); 
    var td1 = $("<td>"); 
    td1.append(data[i]['jsonVal']); 
    var td2 = $("<td>"); 
    td2.append(data[i]['jsonVal']); 
    var td3 = $("<td>"); 
    td3.append(data[i]['jsonVal']); 
    var td4 = $("<td>"); 

    tr.append(td); 
    tr.append(td0); 
    tr.append(td1); 
    tr.append(td2); 
    tr.append(td3); 
    tr.append(td4); 

    $("#myTable tbody").append(tr); 
    } 
    } 
0

あなたはjQueryのを使用して上の意図、あなたはそれを次のように行うことができる場合:

function foo(str) { 
    var array = JSON.parse(str); 
    $.each(array,function(i,obj){ 
     var $tr = $("<tr>").append($("<td>").text(obj.VALUE)).attr("id", obj.ID); 
     $("#myTable > tbody").append($tr); 
    }); 
} 
0

を、あなたはそれを行うことができますように、私はちょうどあなたの状況を作成しようとしました。それが助けてくれることを願って。

var data = [{ 
 
     "ID" : 0, 
 
     "VALUE" : "United State" 
 
    },{ 
 
     "ID" : 1, 
 
     "VALUE" : "United Kingdom" 
 
    },{ 
 
     "ID" : 2, 
 
     "VALUE" : "Afghanistan" 
 
    },{ 
 
     "ID" : 3, 
 
     "VALUE" : "Aland Islands" 
 
    },{ 
 
     "ID" : 4, 
 
     "VALUE" : "Albania" 
 
    } 
 
]; 
 
foo(data); 
 

 
function foo (data) 
 
{ 
 
\t \t \t \t 
 
     var new_opt=""; 
 
     for(var i=0;i<data.length;i++) 
 
     { 
 
      new_opt+='<tr><td>'+data[i]['VALUE']+'</td></tr>'; 
 
     } 
 
     document.getElementById('choose').innerHTML = new_opt; 
 
}
<table id="choose"> 
 
    <tr class="header" ></tr> 
 
    <tr><td>Germany</td></tr> 
 
    <tr><td>Sweden</td></tr> 
 
    <tr><td>UK</td></tr> 
 
    <tr><td>Germany</td></tr> 
 
    <tr><td>Canada</td></tr> 
 
    <tr><td>Italy</td></tr> 
 
    <tr><td>UK</td></tr> 
 
    <tr><td>France</td></tr> 
 
</table>

0

foo(function(data){ 
 
var table = document.createElement("TABLE"); 
 
    table.border = "1"; 
 
    
 
    
 
    
 
    //Add the header row. 
 
    var row = table.insertRow(-1); 
 
    var headerCell = document.createElement("TH"); 
 
    headerCell.innerHTML = "Countries"; 
 
    row.appendChild(headerCell); 
 
    
 
    
 
    //Add the data rows. 
 
    for (var i = 1; i < jsonc.length; i++) { 
 
      row = table.insertRow(-1); 
 
      var cell = row.insertCell(-1); 
 
      cell.innerHTML = jsonc[i]['VALUE']; 
 
    } 
 
    
 
    var dvTable = document.getElementById("dvTable"); 
 
    dvTable.innerHTML = ""; 
 
    dvTable.appendChild(table); 
 

 
});
<div id="dvTable"> 
 
</div>

関連する問題