-2

我有一个 PHP 页面,可以在按下按钮时处理一些信息。其中一个信息是处理查询。然后,我希望将查询结果放入另一个页面的表中。我知道如何将查询结果放入表中,但我不知道如何将它们逐行传递到另一页上的表中。任何人都可以帮助或指出我正确的方向吗?

4

1 回答 1

1

如果我理解正确,您将需要 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 表!

于 2012-11-18T20:57:13.740 回答