JSON 数据发布但表格未填充
Posted
技术标签:
【中文标题】JSON 数据发布但表格未填充【英文标题】:JSON data posts but table does not get populated 【发布时间】:2012-12-30 21:56:55 【问题描述】:编辑:
-
更改了 Jquery 代码以动态重新创建行仍然不行
重组我的桌子仍然不行。
我有一个 php 脚本,可以将我的 db 表编码为一个数组。我回显了 json_encode,它回显得很好。脚本:
<?php
$host="localhost"; // Host name
$username="root"; // mysql username
$password="testdbpass"; // Mysql password
$db_name="test"; // Database name
// Connect to server via PHP Data Object
$dbh = new PDO("mysql:host=localhost;dbname=test", $username, $password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$array = $dbh->query("SELECT id, anum, first, last,
why, comments, aidyear, additional_req,
signintime FROM inoffice WHERE
counselorname IS NULL")->fetchAll(PDO::FETCH_ASSOC);
echo json_encode($array);
?>
然后我有一个应该提取数据然后将其放入表中的页面。出于某种原因,我无法将其发布到该页面上的第一个表中。
这些是我在页面上运行的 jquery 脚本:
<head>
<script src="core/media/js/jquery.js" type="text/javascript"></script>
<script src="core/media/js/jquery.dataTables.js" type="text/javascript"></script>
<script type="text/javascript" src="core/media/js/install.js"></script>
<script type="text/javascript">
$.ajax(
url: 'core/media/js/getdatainoffice.php',
type: 'GET',
async: false,
dataType: 'json',
success: function (result)
var insert = '';
$.each(result, function()
insert += '<tr><td>' + id + '</td><td>' + anum + '</td><td>' + first + '</td><td>' + last + '</td><td>' + why +
'</td><td>' + comments + '</td><td>' + additional_req + '</td><td>' + aidyear + '</td><td>'
+ signintime + '</td></tr>';
);
$('#datatables tr').after(insert);
);
</script>
我是否需要在我的 jquery ajax 中为每个表数据创建一个数组,或者根据我的理解,我认为 json 处理数组的编码方式。
这是我的桌子:
table id='datatables' class='display'>
<thead>
<tr>
<th>Session ID </th>
<th>A Number</th>
<th>First Name</th>
<th>Last Name</th>
<th>Reason for visit</th>
<th>Comments</th>
<th>Aid Year</th>
<th>Additional Requirements</th>
<th>Signin Time</th>
</tr>
</thead>
<tbody>
</tbody>
</table>
任何帮助或解释都会很可爱。我一直在阅读这个site,但无济于事。
JSON 数组:
["id":"7","anum":"B00000000","first":"rixhers","last":"ajazi","why":"Other","cmets":"突 需要一些 帮助!!!","additional_req":"","aidyear":"12-13","signintime":"2013-01-16 09:08:35","id":"8","anum":"A00000000","first":"rixhers","last":"ajazi","why":"上诉"," cmets":"","additional_req":"","aidyear":"12-13","signintime":"2013-01-16 09:28:57","id":"9","anum":"A00000000","first":"rixhers","last":"ajazi","why":"上诉"," cmets":"","additional_req":"","aidyear":"12-13","signintime":"2013-01-16 10:12:07","id":"10","anum":"A00000000","first":"rixhers","last":"ajazi","why":"上诉"," cmets":"","additional_req":"","aidyear":"12-13","signintime":"2013-01-16 11:19:18"]
更多信息:我正在使用一个名为 datatables 的 jquery 插件,我需要填充该表。
【问题讨论】:
【参考方案1】: $.(#datatables).append(data)
在您运行它时,data
是一个数组。您不能只是将一些随机的 javascript 数据结构附加到 DOM 中 - 您必须从该数组中的数据实际构建表行。例如
html = ''
for (x in data)
html += '<tr><td>' + data['somefield'] + '</td></tr>';
$('#datatables').append(html);
如果您对这些数据所做的只是将其填充到 html 表中,那么在服务器上用 PHP 构建 html 并将其作为单个字符串推送到网络上可能会更容易。
【讨论】:
那么对于你在后面的 cmets 中所说的,你所说的在 inofficejson.php 中构建表的地方是开始 json 编码发生的地方? - 然后用数据数组传输表格? 这取决于你。但就我个人而言,我讨厌在 javascript 中构建 html,并尝试在服务器端做尽可能多的事情。 好的,我将着手处理并报告我所做的工作。非常感谢 我尝试使用收到的数据重新创建行,但仍然一无所获。任何其他提示!以上是关于JSON 数据发布但表格未填充的主要内容,如果未能解决你的问题,请参考以下文章
我的表格视图已创建,但数组未显示在表格视图中,控制台中的所有数据都来了。请帮我解决 json 解析