2010-01-05 68 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也不會佔用那麼多的會話內存。