【问题标题】:How do I pass a post through two pages?如何通过两个页面传递帖子?
【发布时间】:2016-04-28 09:13:10
【问题描述】:

在 TCPDF 中,我无法在生成 PDF 的页面上放置任何数据库查询。为了解决这个问题,我决定尝试将这些操作分开,所以第一个操作是将一些细节保存到数据库中。第二个动作是去PDF生成器最终制作PDF。所以页面的顺序是:

1- 用户填写表格 -> 2- 数据库获取重要的帖子详细信息 -> 3- TCPDF 生成 PDF

有没有办法让我的 $_POST 轻松通过第二页和第三页? (我之前使用隐藏的输入字段来存储数据,但我有数百个,这次似乎非常不切实际)

谢谢

【问题讨论】:

  • 当数据也被插入时,为什么不创建 PDF。这样你只需要一个$_POST ?
  • TCPDF 需要操作页面来生成 PDF,它实际上并不能让您在该页面上执行任何其他操作(至少我认为)
  • 我知道,但您可以生成 PDF > 将其保存在服务器上,并在同一个 POST 中发布数据库的详细信息。
  • 查询不会在将发布数据处理为 PDF 的页面上运行。我已经将查询放在其他页面上并且它们可以工作,只是在涉及 TCPDF 时不会。

标签: php tcpdf


【解决方案1】:

在每个页面上创建多个隐藏字段来存储您的初始 $_POST 数据并不现实。

您可以使用$_SESSION 代替$_POST。通过使用会话,您的数据将存储在页面之间。因此,在您的表单第一次发布后,将所有数据保存在一个会话中。

例子:

$_SESSION['name'] = $_POST['name'];

在生成 PDF 时,您将使用变量 $_SESSION['name']

使用后不要忘记取消设置会话,例如:unset($_SESSION['name']);

PS:如果您觉得添加所有字段的工作量太大,请执行以下操作:

$_SESSION['form'] = $_POST;

您可以像这样访问生成器中的所有表单元素:

$_SESSION['form']['nameOfYourField'];

更多信息:http://php.net/manual/en/reserved.variables.session.php

【讨论】:

  • 如果他将每个$_POST 重命名为$_SESSION,这基本上就是您所说的,它会起作用吗?不!请提供更多信息,然后只说$_SESSION 而不是$_POST
  • @Daan 更新了答案。
  • 不幸的是,这仍然需要花费大量时间来替换所有变量,我最终使用 ajax 来执行数据库内容和表单操作来执行 pdf 内容。不过还是谢谢。
  • 很高兴您的问题得到解决,但提醒您,这是您的实际问题:Is there a way to easily pass my $_POST through the second and third pages? ajax 调用不应该是您问题的答案,可能会混淆其他人..
  • 我没有时间更改大量内容,这就是我说“轻松”这个词的原因
【解决方案2】:

您可以使用已填写的字段向数据库发出 ajax POST 请求。 然后将你的页面重定向到pdf生成。

【讨论】:

  • 这很好用,我发送 ajax 来做数据库工作,发送 php 来创建 PDF。谢谢!!
  • @ERushforth 欢迎 :)
猜你喜欢
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
  • 2011-05-14
  • 1970-01-01
  • 1970-01-01
  • 2014-07-07
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多