Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript php数组的复选框值_Javascript_Php_Jquery - Fatal编程技术网

Javascript php数组的复选框值

Javascript php数组的复选框值,javascript,php,jquery,Javascript,Php,Jquery,我使用下面的代码来确保至少选中了一个复选框,它将复选框的“值”输出到一个名为“cont”的ID。我正在寻找一种将输出放入数组(PHP)的方法。我不太擅长JS <?php $count = '0'; while($count <= '2') { $count++; $the_name = "chkBx"; $the_value = 'checkbox'.$count; if ($count == '1') { $its_checked =

我使用下面的代码来确保至少选中了一个复选框,它将复选框的“值”输出到一个名为“cont”的ID。我正在寻找一种将输出放入数组(PHP)的方法。我不太擅长JS

<?php
$count = '0';
while($count <= '2') {
    $count++;
    $the_name = "chkBx";
    $the_value = 'checkbox'.$count;
    if ($count == '1') {
        $its_checked = 'checked'; 
    } else { 
        $its_checked = ''; 
    }
    ?>
    <input type="checkbox" name="<?php echo $the_name; ?>" value="<?php echo $the_value; ?>" <?php echo $its_checked; ?> > 
    <?php
}
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="cont"></div><!-- OUTPUTS HERE-->

<script>
$('input[type="checkbox"][name="<?php echo $the_name; ?>"]').on('change',function(){
  var getArrVal = $('input[type="checkbox"][name="<?php echo $the_name; ?>"]:checked').map(function(){
    return this.value;
  }).toArray();

  if(getArrVal.length){
    //execute the code
    $('#cont').html(getArrVal.toString());

  } else {
    $(this).prop("checked",true);
    $('#cont').html("At least one value must be checked!");
    return false;

  };
});
</script>


你需要阵列做什么

如果您这样做,您需要在加载和不允许删除复选框时保持设置

我个人会在chekcbox上使用一个类,它可以生成一个较短的脚本:

函数checkIt(){
var getArrVal=$(“.myCheck:checked”).map(函数(){
返回此.value;
}).get();
if(getArrVal.length){
$('#cont').html(getArrVal.join(“,”);
}否则{
$('#cont').html(“必须至少检查一个值!”);
$(this).prop(“选中”,true);
getArrVal=[$(this.val());
返回false;
}
console.log(getArrVal);
}
$(函数(){
$(“.myCheck”)。在('click',check');
检查它();
});

1.2.
3.

您需要阵列做什么?此外,map返回一个数组。您可能希望使用AJAX将输出发送到PHP,或者我不理解您的问题。复选框处于循环中,因此认为最好的方法是将值放入数组中,以便稍后获取。这会在循环中工作吗?我的代码不关心如何生成输入。要在服务器上接收数组,使用PHPI时通常会给出
name=“somename[]”
,最初尝试使用name=“somename[]”,但JS只存储循环中的最后一个值。我猜不出为什么-用代码更新您的问题。使用一个类然后名称是无关的使用您的代码如何将该类放入php变量中?对不起,如果是基本问题,还在学习。
<?php
$the_name = "myCheck";
?>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
1.<input type="checkbox" class="<?php echo $the_name; ?>" name="the_name" value="1" checked>
2.<input type="checkbox" class="<?php echo $the_name; ?>" name="the_name" value="2">
3.<input type="checkbox" class="<?php echo $the_name; ?>" name="the_name" value="3"><br/>
<span class="cont" name="bob" value="9999"></span>

<script>
function checkIt() {
    var getArrVal = $(".myCheck:checked").map(function() {
      return this.value;
    }).get();
    if (getArrVal.length) {
        $('.cont').html(getArrVal.join(","));

        var x=$(".cont").text();
        var variablename = $(".cont").val();

    } else {
      $('.cont').html("At least one value must be checked!");
      $(this).prop("checked", true);
      getArrVal=[$(this).val()];
      return false; 
    }
    console.log(getArrVal);
}
$(function() {
  $(".myCheck").on('click',checkIt);
  checkIt();
});
</script>