Как передать данные из всплывающего окна Ajax на родительскую страницу? - PullRequest
2 голосов
/ 05 августа 2009

В настоящее время у меня есть всплывающее окно Ajax, отображаемое на главной странице моего приложения. В этом всплывающем окне у меня есть список выбора, и я хочу передать выбранное значение из всплывающего окна обратно на главную страницу, когда пользователь закрывает всплывающее окно.

Я чувствую, что есть элементарный способ сделать это, но я не могу понять это.

Ответы [ 3 ]

5 голосов
/ 05 августа 2009

Использование window.opener

http://www.webreference.com/js/tutorial1/opener.html

1 голос
/ 05 августа 2009

Когда вы открываете всплывающее окно с помощью javascript (независимо от того, используется ли контент с помощью ajax или какой-либо другой техники), вы можете легко управлять им.

Для вашей проблемы вам нужен window.opener , который указывает на исходный документ: чистый:

во всплывающем коде есть:

<body onclose="window.opener.somevar=document.getElementById('myid').value;window.opener.orsomefunction('value');">
<input id="myid"/>
</body>

таким образом, когда вы закрываете его, он устанавливает переменную и / или вызывает функцию.

Вы также можете установить функцию установки на кнопку или непосредственно на входе

<button onclick="window.opener....;window.close();"/>
0 голосов
/ 07 апреля 2011
<!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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...