我有一个PHP页面,当按钮被按下时,它会处理一些信息。其中一个信息是处理查询。然后,我希望将查询结果放入另一个页面的表中。我知道如何将查询结果放入表中,但不知道如何将它们逐行传递到另一页上的表中。有谁能帮助我或为我指明正确的方向?
发布于 2012-11-19 04:57:14
如果我理解正确的话,您需要使用AJAX (根据需要,还需要使用JavaScript)。您要做的是调用生成函数,并让它返回一种您可以解析的格式(JSON、XML等等)。
在此基础上,使用JavaScript的DOM操作函数将其附加到表中。
生成部件的
假设您正在获取数组格式的数据,如下所示:
$row = array('column 1','column2');
你会得到一大堆这样的行,或者只有一行-我们将编写脚本来处理这两种情况,而不需要重写。每次你得到一行,将它添加到一个非关联数组中,称之为$RowArray。因此,在每一行上,您都将调用$RowArray[] = $row;
。
现在,PHP端已经基本完成了-现在需要做的就是将其回显到客户端。确保您只回显了以下内容:echo json_encode($RowArray);
。这将格式化并序列化您的数组,使其成为完美的JSON对象。
JavaScript端
为简单起见,我们假定为jQuery。您的目标是读取JSON对象并向表中添加行。我们将假设该表的ID为#MyTable。
AJAX调用如下所示:
$.ajax({
url: "your_url.php",
dataType: "json",
type: "post",
success: function(d) {
// Your code here
}
});
当成功解析对象时,将触发success
处理程序,变量d
将成为对象。这个对象将是一个JavaScript数组,其中每个元素都是一个对象。您现在需要做的就是遍历d
并为每个条目创建一行!
success: function(d) {
for(var i=0; i < d.length; i++) {
var newRow = $("<tr></tr");
for (var k in d[i]) {
newRow.append($("<td></td>").text(d[i][k]));
}
newRow.appendTo($("#MyTable"));
}
}
瞧,六行的动态AJAXified表!
https://stackoverflow.com/questions/13444482
复制相似问题