2010-01-05 72 views
0

我有一个PHP网页,接受一个相当大的POST数组。我在页面上有一个按钮,打开一个PHP弹出窗口。有没有一种方便的方法将整个$ _POST数组传递给弹出窗口?

编辑: 这是一个完全不同的页面。我用JavaScript打开它:window.open

+0

关于弹出窗口的更多细节将有所帮助。您的弹出窗口是否需要单独加载页面,还是来自AJAX请求? – 2010-01-05 23:37:31

回答

0

最方便的方法是使用session variables。如果你的POST数据真的很大,你可能会遇到一些性能问题,所以要小心。

柱接收页:

session_start(); 
//... 
$_SESSION['post_for_popup'] = $_POST; 

弹出窗口:

session_start(); 
//... 
do_something($_SESSION['post_for_popup']); 
+0

您必须注意在弹出窗口发出请求之前填充会话。 – 2010-01-05 23:37:33

0

尝试

var_export($_POST,1); 
+0

你如何将它发送到弹出窗口? – 2010-01-05 23:39:48

0

嗯,你可以使用一个$_SESSION变量。我假设弹出窗口是一个完全独立的页面,所以没有其他可行的方式来传送变量而不做回发。所以,你可以做这样的事情:

的index.php:

session_start(); 
$_SESSION['post'] = $_POST; 

popup.php:

session_start(); 
$_POST = $_SESSION['post']; 

希望有所帮助。

+0

你为什么要覆盖$ _POST? – 2010-01-05 23:38:40

+0

因为这是最直观的用法,至少对我来说,并且没有其他$ _POST数据,我不明白为什么不。这样您就可以在原始上下文中使用数据 - 毕竟它是/ POST数据。 – 2010-01-05 23:40:32

+1

如果您已经有脚本,覆盖帖子是个不错的主意。这样你就不必翻新整个混乱。 – 2010-01-05 23:41:02

0

你可以做两件事之一。

首先,您可以将其分配给会话变量并从弹出窗口加载该会话变量。

或者你可以做一个快速的脚本遍历$ _POST数组,并将它们添加为URL上的请求变量。这可能不适合你,因为你的$ _POST很大。

你可以做第二个选项,并使用header()命令将它作为后置变量添加到头文件中,但我不确定增加的值会在那里。

如果我要这样做,我会把它放进会议。即使是一个巨大的post var也不会占用那么多的会话内存。