我有一个PHP网页,接受一个相当大的POST数组。我在页面上有一个按钮,打开一个PHP弹出窗口。有没有一种方便的方法将整个$ _POST数组传递给弹出窗口?
编辑: 这是一个完全不同的页面。我用JavaScript打开它:window.open
我有一个PHP网页,接受一个相当大的POST数组。我在页面上有一个按钮,打开一个PHP弹出窗口。有没有一种方便的方法将整个$ _POST数组传递给弹出窗口?
编辑: 这是一个完全不同的页面。我用JavaScript打开它:window.open
最方便的方法是使用session variables。如果你的POST数据真的很大,你可能会遇到一些性能问题,所以要小心。
柱接收页:
session_start();
//...
$_SESSION['post_for_popup'] = $_POST;
弹出窗口:
session_start();
//...
do_something($_SESSION['post_for_popup']);
您必须注意在弹出窗口发出请求之前填充会话。 – 2010-01-05 23:37:33
尝试
var_export($_POST,1);
你如何将它发送到弹出窗口? – 2010-01-05 23:39:48
嗯,你可以使用一个$_SESSION
变量。我假设弹出窗口是一个完全独立的页面,所以没有其他可行的方式来传送变量而不做回发。所以,你可以做这样的事情:
的index.php:
session_start();
$_SESSION['post'] = $_POST;
popup.php:
session_start();
$_POST = $_SESSION['post'];
希望有所帮助。
你为什么要覆盖$ _POST? – 2010-01-05 23:38:40
因为这是最直观的用法,至少对我来说,并且没有其他$ _POST数据,我不明白为什么不。这样您就可以在原始上下文中使用数据 - 毕竟它是/ POST数据。 – 2010-01-05 23:40:32
如果您已经有脚本,覆盖帖子是个不错的主意。这样你就不必翻新整个混乱。 – 2010-01-05 23:41:02
你可以做两件事之一。
首先,您可以将其分配给会话变量并从弹出窗口加载该会话变量。
或者你可以做一个快速的脚本遍历$ _POST数组,并将它们添加为URL上的请求变量。这可能不适合你,因为你的$ _POST很大。
你可以做第二个选项,并使用header()命令将它作为后置变量添加到头文件中,但我不确定增加的值会在那里。
如果我要这样做,我会把它放进会议。即使是一个巨大的post var也不会占用那么多的会话内存。
关于弹出窗口的更多细节将有所帮助。您的弹出窗口是否需要单独加载页面,还是来自AJAX请求? – 2010-01-05 23:37:31