无法在 PHP 中使用 AJAX 处理复选框值

Failed to process checkbox values with AJAX in PHP

我有一个包含文本、单选框和复选框输入的 HTML 表单。当我用 AJAX 提交时,我只得到数组中最后一个复选框的值。

我的 HTML 文件:

<form class="ajaxonsubmit" action="process.php" method="post">

<label>Name</label><input type="text" name="name">
<label>Father's Name</label><input type="text" name="father_name">

<label>Gender</label>
<input type="radio" value="1" name="gender">Male <br>
<input type="radio" value="2" name="gender">Female <br>

<label>Options</label>
<select name="campus">
    <option value="1">Option1 </option>
    <option value="2">Option2 </option>
</select>

<label>Check List</label>
<input type="checkbox" name="check[]" value="1">
<input type="checkbox" name="check[]" value="2">
<input type="checkbox" name="check[]" value="3">

<button name="submit" type="submit">Submit</button>

我的 JS 文件。

$('.ajaxonsubmit').on('submit', function() {
var that = $(this),
        url = that.attr('action'),
        type = that.attr('method'),
        data = {};

that.find('[name]').each(function(index, value) {
        var that = $(this),
                name = that.attr('name'),
                value = that.val();

        data[name] = value;
});

$.ajax({
    url: url,
    type: type,
    data: data,
    success: function(data) {
        $("#wrap").html(data);
    }
});

return false;

});

我正在使用 var_dump($_POST); process.php 中的函数检查数组,我得到 ["check"]=> array(1) { [0]=> string(1) "3" }

将 class="checkBoxClass" 添加到您的复选框,

然后在你的js中,添加如下代码,将数据添加到你的chkArray

var chkArray = [];
        $(".checkBoxClass:checked").each(function() {
            chkArray.push($(this).val());
        });

最后将数组追加到您要发布的数据中

干杯。

您可以 serialize 表单数据,并在 PHP 端访问

$('.ajaxonsubmit').on('submit', function(e) {

e.preventdefault();

  $.ajax({
    url: url,
    type: type,
    data: $(this).serialize(),
    success: function(data) {
        $("#wrap").html(data);
    }
  });


});

在 PHP

print_r($_POST);