首页 > 解决方案 > 复选框将所有选项存储到数据库中,而不是一个

问题描述

目前,当我只选择一个选项(例如 C)时,我的复选框值将作为 ["A","B","C"] 存储到数据库中。另外,我还有一个问题 - 有没有办法将它存储为 ABC 呢?

$(document).ready(function() {
  "use strict";

  var role;
});

function savenewuser() {
  var url = serverURL() + "/newadmin.php";
  checklist = new Array();
  $('input:checkbox[name="roles[]"]').each(function() {
    checklist.push($(this).val());
  });

  role = JSON.stringify(checklist);

  $.ajax({
    url: url,
    type: 'GET',
    data: {
      "role": role,
    },
    success: function(arr) {
      _getNewUserResult(arr);
    },
    error: function() {
      alert("error");
    }
  });
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div><label for="rights">Rights</label></div>
<input type="checkbox" name="roles[]" value="A">Bookings
<input type="checkbox" name="roles[]" value="B">Incident Booking
<input type="checkbox" name="roles[]" value="C">Edit User

标签: javascriptphp

解决方案


您正在保存所有复选框:

$('input:checkbox[name="roles[]"]').each(function() {
    checklist.push($(this).val());
});

尝试:checked只保存:

$('input:checkbox[name="roles[]"]:checked').each(function() {
    checklist.push($(this).val());
});

推荐阅读