使用Javascript获取所有复选框的值

使用Javascript获取所有复选框的值,javascript,php,html,mysql,checkbox,Javascript,Php,Html,Mysql,Checkbox,当点击一个按钮时,一个新的类别被添加到数据库中,并且也显示在同一页面上。但我的问题是,当我多次点击按钮时,它会为同一复选框值添加多个复选框。我让它插入到数据库中,只有当它还不存在的时候。我的问题是,当我点击按钮时,如果它不在数据库中,它应该添加类别。我有两个功能 添加_cat();javascript函数,调用ajax将新类别添加到数据库中 是用于创建新页面的php函数 在页面上显示复选框时,我使用name=cats[]类数组来显示所有复选框,如 <input type="checkbox

当点击一个按钮时,一个新的类别被添加到数据库中,并且也显示在同一页面上。但我的问题是,当我多次点击按钮时,它会为同一复选框值添加多个复选框。我让它插入到数据库中,只有当它还不存在的时候。我的问题是,当我点击按钮时,如果它不在数据库中,它应该添加类别。我有两个功能

  • 添加_cat();javascript函数,调用ajax将新类别添加到数据库中
  • 是用于创建新页面的php函数
  • 在页面上显示复选框时,我使用name=cats[]类数组来显示所有复选框,如

    <input type="checkbox" name="cats[]" id="<?php echo $row{'term_id'};?>" value="<?php echo $row{'name'};?>"> <?php echo $row{'name'}; ?> `
    
    `
    
    在add_cat()函数中,我使用了以下代码

    var val = document.getElementById('cat_name').value;
    var checkboxes = document.getElementsByName('cats');
    var flag = 0;
    for (var i = 0, n = checkboxes.length; i < n; i++) {
        if (checkboxes[i] == val) {
            flag = 1;
        }
        alert(flag);
    } //check the duplicates
    if (flag == 1) {
        alert(flag);
        document.getElementById('error').innerHTML = "Already exists";
        setTimeout(function() { // to show the Error
            $('#error').fadeIn("fast").delay(500).fadeOut("slow");
        }, 1500);
        flag = 0;
    } else {
        var div = document.getElementById('divContainer');
        div.innerHTML = div.innerHTML + "<input id='chk_" + idCounter + "' type='checkbox' checked value='" + val + "' /><label for='chk_" + idCounter + "'>" + val + "</label>";
        idCounter++;
        cat_2_db(val); // call ajax to insert  category in database
    }
    
    var val=document.getElementById('cat_name').value;
    var复选框=document.getElementsByName('cats');
    var标志=0;
    对于(变量i=0,n=checkbox.length;i

    但问题是,标志永远不会变为1,并且checkbox变量不会返回您没有找到的复选框值:

    if (checkboxes[i].value === val) {
    
    重构for循环

    for(var i = 0, i < checkboxes.length; i++) {
        if (checkboxes[i].value === val) {
            flag = 1;
        }
    } 
    
    for(变量i=0,i
    -1质量非常差。请重新格式化您的问题并使其可读…好的@cept0我做得很好,不要降低我的声誉我已经很差了你好的,我的意思是声誉是我们仅限于使用堆栈函数,这就是为什么我们拒绝发布下一个qn
    if(复选框[i].value==val){
    检查价值OK好吧,我没有时间报复,我总是把答案投白色,我觉得这很有帮助