2012-07-06 13 views
2

我在父瀏覽器窗口中有一些JavaScript變量,現在我想通過單擊某個按鈕打開一個新窗口(一個現有的php文件)並將這些變量傳遞給打開的頁面。我知道我可以通過GET方法實現,我只是想知道是否有更清晰的方法可以實現,所以我不必在URL末尾附加變量值。我也搜索了谷歌和SO,有人建議使用window.opener它似乎不適用於PHP。我仍然是一個新手。任何幫助表示讚賞。提前致謝。在揭幕戰頁我可以使用window.open打開現有的php文件並將javascript變量傳遞給該php頁面嗎?

腳本

var newWindow = window.open ("myfile.php" ,"_blank"); 
newWindow.var1="hello"; 
newWindow.var2="world"; 

myfile.php

//Is it possible to use the variables in php page as below? 
window.opener.var1; 
window.opener.var2; 
+0

研究$ _POST數組而不是$ _GET以避免將數據附加到URL字符串。另外,在任何人發佈答案之前,你需要發佈你已經做出的努力(即:你的編碼嘗試在哪裏?) – Brant 2012-07-06 18:36:19

+0

這個問題太含糊。你想做什麼?爲什麼要將變量添加到URL中是一個問題? – colonelclick 2012-07-06 18:42:05

+0

@colonelclick,傳遞的變量可能很長,所以我寧願避免將它附加到URL,如果可能的話 – aarryy 2012-07-06 19:27:12

回答

2

如果你想這些變量是在PHP代碼訪問,則沒有,GET方法是最簡單,最明確的做法。

No JS needed to open new window: 
<a href="myfile.php?var1=foo&var2=bar" target="_blank">mylink</a> 

JS method: 
window.open("http://mysite.com/myfile.php?var1=foo&var2=bar"); 

myfile.php

<?php 
    $var1 = $_GET['var1']; 
    $var2 = $_GET['var2']; 
    ... 
?> 
1

您可以使用POST方法和target="_blank"一種形式,但不是你的選擇是有限等。

無論如何,人們不喜歡彈出窗口。