使用foreach循环,jquery和ajax插入多个复选框值

我有输入字段复选框,

   

我的问题是,在我的foreach循环插入查询中,如果我选中了所有复选框, 选中复选框

它只会在我的数据库中插入值1和2,它会忽略值3。

我正在使用jquery和ajax来获取复选框。

 var rubricChkbox = new Array(); $(".rubricChkbox:checked").each(function() { rubricChkbox.push($(this).val()); }); console.log(rubricChkbox); $.ajax({ url: "Queries/save.php", type: "POST", data: { "rubricChkbox":rubricChkbox }, success: function(yey){ console.log(yey); alert(yey); } }); }); }); 

这是我的save.php,

 if (isset($_POST['rubricChkbox']) || isset($_POST['uncheked']) || isset($_POST['user_id'])) { $rubric_value = $_POST['rubricChkbox']; $IDuser = $_POST['user_id']; foreach($rubric_value as $rubric_check) { $sql_check = "SELECT raw_selected_rubric FROM rubric_selected INNER JOIN cmat_composition ON rubric_selected.ID_cmat = cmat_composition.ID_cmat WHERE rubric_selected.ID_users = '$IDuser' AND raw_selected_rubric = '$rubric_check' AND rubric_selected.Saved = '1'"; $result_check = mysqli_query($conn,$sql_check); if (mysqli_num_rows($result_check) <= 0){ $sql_raw = "INSERT INTO rubric_selected (raw_selected_rubric, Saved, ID_users) VALUES ('$rubric_check', '1', '$IDuser')"; mysqli_query($conn, $sql_raw); } } 

我错过了什么? 谢谢。

对你来说最好的建议是,如果某些东西不能按你想要的方式工作,你应该检查每一步发生的事情,直到找到问题为止。 这不仅适用于这个问题,而且适用于任何编程问题(以及许多其他问题)。

在这种情况下

  • 从浏览器发送的数据是否正确? 你已经有语句console.log(rubricChkbox); 。 你检查过那个价值吗? 你为什么不把它包括在问题中?
  • 正确的数据是否到达PHP脚本? 使用类似print_r ($_POST);
  • SQL INSERT取决于SQL SELECT的结果。 您是否检查过这种情况是否属实,因为否则您的代码甚至不会尝试插入。
  • INSERT语句是否返回一些错误?