我目前在应用程序的主页面上显示了一个Ajax弹出窗口。在这个弹出窗口中,我有选择列表,我想在用户关闭弹出窗口时将弹出的选定值传递回主页面。
我觉得有一个基本的方法可以做到这一点,但我似乎无法弄明白。
答案 0 :(得分:5)
使用window.opener
答案 1 :(得分:1)
当您通过javascript打开弹出窗口时(无论内容是通过ajax还是其他技术),您都可以轻松控制它。
对于您的问题,您需要 window.opener ,它指向原始文档: 干净的:
弹出代码中的有:
<body onclose="window.opener.somevar=document.getElementById('myid').value;window.opener.orsomefunction('value');">
<input id="myid"/>
</body>
这样,当你关闭它时,它会设置一个变量和/或调用一个函数。
您也可以在按钮上或直接在输入
上设置set-function<button onclick="window.opener....;window.close();"/>
答案 2 :(得分:0)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<?PHP
$test_1 = $_GET['variable1'];
$test_2 = $_GET['variable2'];
$test_3 = $_GET['variable3'];
$test1 = "blabla1";
$test2 = "blabla2";
$test3 = "blabla3";
?>
<html>
<head>
<title>Untitled</title>
<script type="text/javascript" src="js/mootools-1.2.4-core-yc.js"></script>
<script type="text/javascript">
//on dom ready...
window.addEvent('domready', function() {
/* ajax replace element text */
$('ajax-replace').addEvent('click', function(event) {
//prevent the page from changing
event.stop();
//make the ajax call, replace text
var req = new Request.HTML({
method: 'get',
url: $('ajax-replace').get('href'),
data: { 'variable1' : '<?=$test1?>', 'variable2':'<?=$test2?>', 'variable3' : '<?=$test3?>' },
//onRequest: function() { alert('Request made. Please wait...'); },
update: $('message-here'),
onComplete: function(response) { alert('Variable 1: <? echo $test1; ?> Variable 2: <? echo $test2; ?> Variabble 3: <? echo $test3; ?>'); $('message-here');
}
}).send();
});
});
</script>
</head>
<body>
<p>
<a href="index.php" id="ajax-replace">Click</a>
</p>
<div id="message-here">
<?PHP
echo $variable_1."<br>";
echo $variable_2."<br>";
echo $variable_3."<br>";
?>
</div>
</body>
</html>