2

チェックボックスでチェックされた値を取得する際に問題が発生しています。コードをクリーンアップしようとしました。

選択したすべてのチェックボックスを (行ごとではなく) 選択することができました。または、行ごとにチェックボックス ID を取得できますが、選択した値は取得できません。値を別のページに転送できると確信していますが、それらを取得する方法がわかりません。

ここでの支援は大歓迎です!

 //php variables used
 $pages = 2
 $size = 4 
  <form id="form" name="cb">
  <div style=" width:800px; height:500px; overflow:auto">
  <h2>Select Editions</h2>
  <table id='table' name='table' border=1 cellpadding=7 width=50% height=50% align='center'>\n
    for($x = 1; $x <= $pages; $x++) :
      print "<td id='page_$x' class='page_button' align='center' custom='0' >Page $x - ";
        for($i = 1; $i <= $size; $i++) :
          print "<input type='checkbox' class='ebutton' id='etype_$x' name='checks[]' value='$i' /> $i";
        endfor;
      </td>
      </tr>
    //php end for loop
    endfor;
  </div>
  </form>

チェックボックスクラスのクラスに基づいて更新するJavascriptは次のとおりです

    $(document).ready(function() {
      $(".ebutton").change(function() {

        var idp = $(this).attr("id").split("_");
        var page_num = idp[1];

        //  I need to find out how to get the checkboxes that are checked per row. Ex: 01,02
        //var editions = ?;
        //alert(editions);

        var hidden_id = "#etype_page_" + page_num;
          if($(hidden_id).length < 1) {
            $("#base").append('<input type="hidden" id="etype_page_'+ page_num +'" name="'+ page_num +'"  value="'+ editions +'" class="hidden_edtype" custom="' + editions +'">');
          } else {
            $(hidden_id).val($(this).val());
          }
        update_eShow();
      });
    });

    function update_eShow() {
      $("#eShow").html('');
        $(".hidden_edtype").each(function() {
         var page = $(this).attr("name");
         var value = $(this).attr("custom");
         $("#eShow").append('page:' + page + ' values:' + value +'<br>');
      });
    }

ページは次のようになります。

| | ページ 1 - []1 []2 []3 []4 |

| | ページ 2 - []1 []2 []3 []4 |

4

4 に答える 4

0

名前には別の番号を付ける必要があります。名前は、IDと同じように一意である必要があります。

idのような名前を設定してみてください:name='etype_$x'

次に、デバッグコンソールを使用して(chrome hit f12を使用している場合)、ネットワークに移動して、フォーム内で送信されている変数と値を視覚化します。

于 2012-12-04T22:48:02.887 に答える
0
var $editions = $("#page_"+page_num+" input[checked=checked]");
var editions = [];
$editions.each(function(input) {
  editions.push($(input).val());
});
于 2012-12-04T22:50:16.983 に答える
0

今、それが親に小切手を送信するポップアップウィンドウであることを知っています...

次のようなチェックを行います。

print "<input type='checkbox' class='ebutton checks$x' id='etype_$x' name='checks".$x."[]' value='$i' /> $i";

ページ 1 のチェックのクラスを「checks1」として取得するには、ページ 2 のチェックのクラスを「checks2」、...

そして、チェックされたものを取得するには:

 var page_num = idp[1];
 var checks=$('checks'+page_num).attr('checked',true); //to get all checked checkboxes of the class checks+page_num
 var editions="";
 checks.each(function(ch) {
     editions+=$(ch).val()+',';
 }

editions には、そのページのすべてのチェック済みの値が「,」で区切られています。

于 2012-12-07T18:34:07.367 に答える
0

チェックボックスをphpに送信するのにjavascriptは必要ありません

次のようにチェックに名前を付けることができますchecks[$page][]

print "<input type='checkbox' class='ebutton' id='etype_$x' name='checks[$x][]' value='$i' /> $i";

アクションページでは、 $_POST(pr $_GET)["checks"][1] に、ページ 1 (存在する場合) に対してチェックされた値を含む配列があります。

于 2012-12-04T22:50:53.457 に答える