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

xurqigkl  于 2021-06-19  发布在  Mysql
关注(0)|答案(1)|浏览(398)

我有输入框,

<input value="1" name="rubric_chkbox[]" type="checkbox" class="checkbox" />
<input value="2" name="rubric_chkbox[]" type="checkbox" class="checkbox" />
<input value="3" name="rubric_chkbox[]" type="checkbox" class="checkbox" />

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

它只会在我的数据库中插入值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); 

          }

        }

我错过了什么?谢谢您。

mwg9r5ms

mwg9r5ms1#

对你最好的建议是,如果某件事情没有按你想要的方式工作,你应该检查每一步发生的事情,直到你发现问题为止。这不仅适用于这个问题,而且适用于任何编程问题(以及其他许多问题)。
在这种情况下
从浏览器发送的数据是否正确?你已经有声明了 console.log(rubricChkbox); . 你查过那个值了吗?你为什么不把它包括在问题里?
正确的数据到达php脚本了吗?使用类似 print_r ($_POST); .
sql插入取决于sql选择的结果。你检查过这个条件是真的吗,否则你的代码甚至不会尝试插入。
insert语句是否返回错误?

相关问题