要从多个复选框中获取值,请使用以下代码:
<form class="myform" method="post" action="">
<input type="checkbox" class="checkbox" value="11" /><br>
<input type="checkbox" class="checkbox" value="22" /><br>
<input type="submit" value="Go" />
</form>
ajax:
$(document).ready(function(){
$('.myform').on('submit', function(e){
//Stop the form from submitting itself to the server.
e.preventDefault();
var checkboxvalue = $('.checkbox').val();
$.ajax({
type: "POST",
url: '',
data: {checkboxvalue: checkboxvalue},
success: function(data){
$('.response').html(data);
}
});
});
});
php:
if($_SERVER['REQUEST_METHOD'] == "POST") {
$value = false;
if(isset($_POST['checkboxvalue'])){
$value = $_POST['checkboxvalue'];
}
echo 'The value was: ' . $value;
exit;
}
问题是:选中第二个复选框时,我得到的值11
,即第一个复选框的值。
当单击两个复选框时,我也会得到值11
我要实现的目标:如果我选中第一个复选框,则应给我11
作为输出。选中第二个复选框,他应该输出22
作为值。并且在选中两个复选框时,他应该将11
和22
输出为值。
我该如何实现?
答案 0 :(得分:3)
使用此
$(document).ready(function(){
$('.myform').on('submit', function(e){
e.preventDefault();
var checkboxvalue = [];
$("input[type=checkbox]:checked").each(function(i){
checkboxvalue.push( i.value );
});
$.ajax({
type: "POST",
url: '',
data: {checkboxvalue: checkboxvalue},
success: function(data){
$('.response').html(data);
}
});
});
});
php
if($_SERVER['REQUEST_METHOD'] == "POST") {
$value = false;
/* the check box value in array*/
print_r($_POST['checkboxvalue']);
if(isset($_POST['checkboxvalue'])){
$value = $_POST['checkboxvalue'];
}
exit;
}
答案 1 :(得分:0)
您需要添加名称属性以进行检查
<input type="checkbox" class="checkbox" name="value-check" value="11" /><br>
var checkboxvalue = [];
$.each($("input[name='value-check']:checked"), function(){
checkboxvalue.push($(this).val());
});
答案 2 :(得分:0)
您需要loop through
选中的复选框,您的代码存在问题,因为它总是始终为您提供第一个选中的复选框的值
var chkArray = [];
$(".checkbox:checked").each(function() {
chkArray.push($(this).val());
});
var selected;
selected = chkArray.join(',') ;
console.log(selected)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
<div><input type="checkbox" value="1" class="checkbox"> Value 1</div>
<div><input type="checkbox" value="2" class="checkbox" checked="checked"> Value 2</div>
<div><input type="checkbox" value="3" class="checkbox"> Value 3</div>
<div><input type="checkbox" value="4" class="checkbox"checked="checked"> Value 4</div>
<div><input type="checkbox" value="5" class="checkbox"> Value 5</div>
答案 3 :(得分:0)
如果已选中复选框,则需要创建一个数组并填充值。
$(document).ready(function(){
$('.myform').on('submit', function(e){
//Stop the form from submitting itself to the server.
e.preventDefault();
var values = [];
$('.checkbox').each(function() {
if ($(this).is(':checked')) {
values.push($(this).val());
}
});
console.log(values);
});
});
请参见Codepen