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

现在,知道这是一个将支票发送给父母的弹出窗口......

进行如下检查:

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

名称应该有不同的数字,以它应该是唯一的形式发送的名称,就像您的 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

您不需要 javascript 将复选框发送到 php

您可以将检查命名为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 回答