2009-05-18 52 views
0

我有一個PHP頁面,其中使用JavaScript,創建一個彈出窗口,其中包含另一個PHP頁面。彈出窗口中的php頁面基本上是一個表單,並將使用該值插入到數據庫中。使用下面的函數來加載PHP頁面中彈出:通過從PHP到JavaScript的參數返回到PHP

phppopup('edit_status.php?cmd=EditStatusData') 

function phppopup(page){ 
child1 = window.open (page, "Ebay Auctions", "height=600,width=600,status=yes,toolbar=no,menubar=no,location=no"); 
child1.document.close(); 
} 

如何傳遞的值從調用頁面,該頁面在彈出?

我想此刻:

echo "<p><a href=\"#\" onclick=\"updateByEdit('". $username ."', '". $subcat ."')\">Edit User Info</a> 
<p><a href='#' onclick=\"makewindows2('edit_status.php?cmd=EditStatusData&pk=". $pk ."'); return false;\">Historie</a>; 

產生下面的HTML:

<a href="#" onclick="updateByEdit('trendsandbrands', 'fakeapproved')">Edit User Info</a> 
</strong></strong></strong></strong></p><p><strong><strong><strong><strong><a href="#" onclick="phppopup('edit_status.php?cmd=EditStatusData&amp;pk='); return false;">Historie</a> 

它工作正常的updateByEdit,爲什麼不爲phpopup?

$ pk只是一個整數,它在調用窗口的頁面中顯示得很好。

+0

窗口名稱(如「Ebay Auctions」不能包含空格,如果你想讓它在MSIE中工作, – Quentin 2009-05-18 12:03:29

+0

@david - omg,人們仍然擔心在MSIE中做任何事情都是如此); just kidding – 2009-05-18 12:08:00

+0

IE7 +怎麼樣? – 2009-05-18 12:16:20

回答

0

那麼,你已經在做 - edit_status.php中的GET變量將有一個條目,其中key ='cmd'和value ='EditStatusData'。只需傳遞儘可能多的參數(同時注意這些數據將公開顯示)。

0

只需添加參數作爲GET請求的一部分:

phppopup("index.php?var1=value1&var2=value2"); // Get 

或者,傳遞參數,它是已經打開,使用返回的句柄(child1)和通過javascript訪問該窗口的DOM。

child1.document.getElementById("myelement").innerHTML = "Hello World"; // Parent Child 

如果你有這樣的煩惱,讓孩子窗口中的子文件已加載何時通過window.opener觸發父窗口的回調,如

window.opener.myCallback(requestedinfo); // Parent window callback function 
0

我注意到,生成的HTML中包含有HTML實體的查詢字符串(「&放大器;」),而不是他們的實際等價物。確保updateByEdit(...)不返回實體,否則查詢字符串將無法正確打印。