我有一個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