2012-03-30 7 views
0

jQueryダイアログで読み込まれたページから選択した値を取得しようとしています。jQueryダイアログで読み込まれたページから選択した値を取得します

以下はその詳細です - 一度 'SelectTeam.php'ページがダイアログにロードされたら(デフォルト選択を渡したことがあります)、ユーザーがダイアログの[OK]ボタンをクリックすると、ユーザーが新しい選択としてデフォルトの選択&を無効にしてから[OK]を押します。 「OK」ボタンを押すと、どのように新しい選択をするべきですか?

親ページ - jQueryのダイアログにロードされている

<!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> 

子ページ -

<?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> 
+0

:あなたはラジオボタンとチェックボックスを交換した場合、あなたはこのような何かを試すことができ

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

:選択したすべてのチェックボックスの値を取得するには、このような何かを試すことができますラジオボタンは、1つの選択肢だけを必要とする場合は...?そして、彼らはあなたが選択したいもの、つまり新しい選択URLに等しい値を持つべきですか? – Stefan

答えて

0

は、あなただけの新しい選択のURLと、再びopenDialogの(URL)を呼び出すことはできませんか?

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

編集:私はあなたが選択を表示させたいwherあまりにもわかりません。新しい選択がダイアログになければなりませんか?ダイアログの外?

更新:#somedivに読み込むように見えます。

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

UPDATE:1つのURLのみを選択する場合は、代わりにラジオボタンを使用する必要があります。あなたのチェックボックスがあるべき

new_url = $('input[name=radioName]:checked', '#frmSelectTeams').val() 
関連する問題