【问题标题】:Create mysql table from a query run on another PHP page从另一个 PHP 页面上运行的查询创建 mysql 表
【发布时间】:2012-11-18 20:55:42
【问题描述】:

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

【问题讨论】:

  • 为什么不能在一个页面查询信息,从另一个页面检索信息?
  • 我不知道如何逐行传递...所以另一页上的表格会有正确的结果

标签: php html mysql tabular


【解决方案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"));
   }
}

瞧,六行动态 AJAX 化表!

【讨论】:

  • 然后,我将用代码编辑并充实我的答案。最好先检查一下。
  • 那里,大大充实了答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2017-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多