Получить выбранные значения со страницы, загруженной в диалоге jQuery - PullRequest
0 голосов
/ 30 марта 2012

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

Ниже приведены подробности. После того, как страница «SelectTeam.php» была загружена в диалог (после выбора по умолчанию), Как только пользователь нажимает кнопку «ОК» в диалоговом окне, которое я хочувосстановить новый выбор, так как пользователь может переопределить выбор по умолчанию и затем нажать OK.Как получить новый выбор при нажатии кнопки «ОК».

Родительская страница -

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>jQuery UI Dialog Example</title>
    <link type="text/css" href="css/smoothness/jquery-ui-1.8.18.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="js/jquery-1.7.1.min.js"></script>
    <script type="text/javascript" src="js/jquery-ui-1.8.18.custom.min.js"></script>
    <style>
            body { font-size: 62.5%; }
    </style>
    <script type="text/javascript">
        function openDialog(url) {
           $("#somediv").load(url).dialog({
                                            modal:true,
                                            title: 'Team Select',
                                            width: 300,
                                            height: 400,
                                            autoOpen: true,
                                            resizable: false,
                                            buttons: {
                                                "OK": function() {
                                                    $(this).dialog("close");
                                                },
                                                "Cancel": function() {
                                                    $(this).dialog("close");
                                                }
                                            }
                                            });
        } 
    </script>
</head>
<body>
    <div id="somediv"></div>
    <a href="#" onclick="openDialog('SelectTeam.php?TeamIds=2,4,13');">Dialog</a>
</body>
   </html>

Дочерняя страница, загружаемая в диалоге jQuery -

 <?php

$lstTeamId = array();

if (isset($_GET['TeamIds']))
{
$lstTeamId = explode(',', $_GET['TeamIds']);
}
?>

<!DOCTYPE html>
<html>
<body>
    <form id="frmSelectTeams">

        <table width="100%" border="1">
             <tr>
                <th align="center"><input type="checkbox" disabled="disabled"/></th>
                <th align="center">Team Name</th>
             </tr>

            <?php
            for ($index = 1; $index < 21; $index++)
            {
                echo '<tr>';
                echo '<td align="center"><input type="checkbox" class="test" name="chk' . $index . '" '; if (in_array ($index, $lstTeamId)) { echo 'checked="checked"';} echo ' /></td>';
                echo '<td align="center">Team ' . $index . '</td>';
                echo "</tr>";
            }
            ?>

        </table>
    </form>
</body>
</html>

1 Ответ

0 голосов
/ 30 марта 2012

Разве вы не можете просто снова вызвать openDialog (url) с URL нового выделения?

buttons: {
   "OK":      function() 
                new_url = 'new_selection_url';
                openDialog(new_url);
              },
   "Cancel": function() {
               $(this).dialog("close");
             }
}

РЕДАКТИРОВАТЬ: Я не слишком уверен, когда вы хотите, чтобы выборы отображались. Должен ли новый выбор быть в диалоге? За пределами диалога?

ОБНОВЛЕНИЕ: ОК, похоже, что вы хотите загрузить его в #somediv. Просто позвоните load еще раз:

buttons: {
   "OK":      function() 
                new_url = 'new_selection_url';
                $('#somediv').load(new_url);
              },

ОБНОВЛЕНИЕ: Если вы хотите, чтобы был выбран только один URL-адрес, вы должны использовать вместо этого переключатели. Чтобы получить значения всех выбранных флажков, вы можете попробовать что-то вроде этого:

var urls = [];
$('.test :checked').each(function() {
   urls.push($(this).val());
 });
new_url = urls[0];

Если вы замените флажки переключателями, вы можете попробовать что-то вроде этого:

new_url = $('input[name=radioName]:checked', '#frmSelectTeams').val()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...