jQueryを使用してテーブルにjsonデータを入力しようとしています。しかし、divコンテンツは空のままです。plsは私がエラーを見つけるのに役立ちます。配列list
にはデータが含まれています(私はそれをチェックしましたconsole.log(list)
)。また、キーとで指定された値list['Var1']
を参照してください。問題はまさにjQueryにあります。list['Var2']
Var1
Var2
function loadData() {
$.getJSON(
'modules/getData.php',
function(data) {
var list = data.flights;
var textToInsert = '';
console.log(list);
for (var i = 0; i < list.length; i += 1) {
textToInsert[i++] = '<tr><td>';
textToInsert[i++] = list['Var1'];
textToInsert[i++] = '</td>' ;
textToInsert[i++] = '<td>';
textToInsert[i++] = list['Var2'];
textToInsert[i++] = '</td> </tr>' ;
}
$('#flights_table tbody').append(textToInsert.join(''));
}
);
}
<div id="flights_table" style="display:none;">
<table id="newspaper-b" border="0" cellspacing="2" cellpadding="2" width = "100%">
<thead>
<tr>
<th scope="col">Var1</th>
<th scope="col">Var2</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
getData.php
$list = array();
//fill the list using 'keys' and 'values'
echo json_encode(array('flights' => $list));
die();
UDPATE: list.lengthが含まれています。しかし、Firebugはまだ言います
TypeError:textToInsert.joinは関数ではありません
解決策:解決策はこれを使用することでした:
for (var i = 0; i < list.length; i++) {
aux = list[i];
textToInsert += '<tr><td>';
textToInsert += aux.Var1;
}