我在使用我已经通过php页面生成的JSON对象构建html表时遇到问题。
我正在从电子表格构建我的JSON对象,其中包括:Fname,Lname,Ext,Rm。
我的json.php网页给了我这个结果:
[{"fName":"John","lName":"Doe","Ext":"#666","Rm":"C3","id":0},{"fName":"Abraham","lName":"Lincoln","Ext":"#917","Rm":"C1","id":1}]
所以现在我正在尝试使用jquery构建一个用这些数据填充表的html页面。 这是我为index.html提供的内容:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript">
</script>
</head>
<body>
<div id="stuff"
<table id="userdata" border="1">
<thead>
<th>First Name</th>
<th>Last Name</th>
<th>Ext</th>
<th>Room</th>
</thead>
<tbody></tbody>
</table>
</div>
<script>
$(document).ready(function(){
$("#userdata tbody").html("");
$.getJSON("json.php", function(data){
$.each(data.members, function(i,user){
var tblRow =
"<tr>"
+"<td>"+user.fName+"</td>"
+"<td>"+user.lName+"</td>"
+"<td>"+user.Ext+"</td>"
+"<td>"+user.Rm+"</td>"
+"</tr>"
$(tblRow).appendTo("#userdata tbody");
});
}
);
});
</script>
编辑: 使用以下代码找到我的解决方案:
<?php
$json = file_get_contents('collab.json.php');
$data = json_decode($json,true);
echo '<table>';
echo '<tr><th>Username</th><th>Period</th><th>Room</th><th>Next?</th></tr>';
$n = 0;
foreach ($data as $key => $jsons) {
foreach ($jsons as $key => $value) {
echo '<tr>';
echo '<td>'.$data[$n]['username'].'</td>';
echo '<td>'.$data[$n]['period'].'</td>';
echo '<td>'.$data[$n]['Rm'].'</td>';
echo '<td>'.$data[$n]['next'].'</td>';
echo '</tr>';
$n++;
}
}
echo '</table>';
?>
</html>
答案 0 :(得分:1)
假设您提供的json是json.php
的唯一输出,您必须略微更改此行:
$.each(data.members, function(i,user){
对此:
$.each(data, function(i,user){
答案 1 :(得分:0)
通常在这些情况下,我将项添加到数组中,然后连接并追加数组。例如,在你们每个人中。
tblRow = [
'<tr>',
'<td>' + user.fName + '</td>',
'<td>' + user.lName + '</td>',
'<td>' + user.Ext + '</td>',
'<td>' + user.Rm + '</td>',
'</tr>',
].join('\n');
myArray.push(tblRow);
myArray是循环外的空数组,然后在循环后将数组内容附加到表中。
希望这有帮助!