如何在没有表单的情况下使用ajax和php使用复选框将数据插入数据库

如何在没有表单的情况下使用ajax和php使用复选框将数据插入数据库,php,jquery,ajax,codeigniter,Php,Jquery,Ajax,Codeigniter,当我选中复选框时,我想将复选框的值输入数据库。请帮助我找到用于此的Ajax和php代码。 我试过这个 $(document).on('click', "input[type='checkbox']", function() { var checkbox = $(this); var checked = checkbox.attr('checked'); $.ajax({ url:"<?php echo base_url("contact-de

当我选中复选框时,我想将复选框的值输入数据库。请帮助我找到用于此的Ajax和php代码。 我试过这个

    $(document).on('click', "input[type='checkbox']", function() {
    var checkbox = $(this);
    var checked = checkbox.attr('checked');
    $.ajax({
        url:"<?php echo base_url("contact-details-availability"); ?>",
        type: 'post',
        data: {
            action: 'checkbox-select', 
            id: checkbox.attr('contact_avl'), 
            checked: checked
              },
        success: function(data) {
            //alert(data);
        },
        error: function(data) {
           // alert(data);
            // Revert
            checkbox.attr('checked', !checked);
        }
    });
});
但它不起作用

试试这个:

var id = checkbox.attr('contact_avl'),
$.ajax({
        url:"<?php echo base_url("contact-details-availability"); ?>",
        type: 'post',
        data: {
            action: 'checkbox-select', 
            id: id, 
            checked: 'checked'
              },
        success: function(data) {
            //alert(data);
        },
        error: function(data) {
           // alert(data);
            // Revert
            checkbox.attr('checked', !checked);
        }
    });
var id=checkbox.attr('contact_avl'),
$.ajax({
url:“”,
键入:“post”,
数据:{
操作:“选中复选框”,
id:id,
选中:“选中”
},
成功:功能(数据){
//警报(数据);
},
错误:函数(数据){
//警报(数据);
//恢复
checkbox.attr('checked',!checked);
}
});

以下是工作JQuery

<script>
        $(document).on("change", "input[name='chk']", function () {
            var checkbox = $(this);
            var checked = checkbox.prop('checked');
            $.ajax({
                url:"<?php echo base_url("contact-details-availability"); ?>",
                type: 'post',
                data: {
                    action: 'checkbox-select', 
                    id: checkbox.data('contact_avl'), 
                    checked: checked
                      },
                success: function(data) {
                    //alert(data);
                },
                error: function(data) {
                   // alert(data);
                    // Revert
                    checkbox.attr('checked', !checked);
                }
            });
        });
    </script>

$(文档)。在(“更改”、“输入[name='chk']”上,函数(){
var复选框=$(此);
var checked=checkbox.prop('checked');
$.ajax({
url:“”,
键入:“post”,
数据:{
操作:“选中复选框”,
id:checkbox.data('contact_avl'),
勾选:勾选
},
成功:功能(数据){
//警报(数据);
},
错误:函数(数据){
//警报(数据);
//恢复
checkbox.attr('checked',!checked);
}
});
});
HTML

检查
我说这是在工作,因为这三个值都在传递。 对修复所做的更改包括:

1] 已更改
var checked=checkbox.attr('checked')
to
var checked=checkbox.prop('checked')

2] 将id:checkbox.attr('contact_avl')
更改为id:checkbox.data('contact_avl')


3] 将
onclick
更改为
onchange

但它不起作用
哪一部分在这里不起作用?您是否查看了firbug以检查是否发送到url?该值不传递,并显示错误未定义索引id,并在ajax中检查,
var\u dump($\u POST)
您将看到所有值都发布了什么。请尝试用
更改
事件代替
单击
,还有一件事将选中的
替换为任何其他属性,因为有一个属性具有相同的名称。让我知道。我还有一个疑问,当我们选中复选框后,它在刷新页面后仍处于选中状态。这怎么可能?大多数情况下,这是因为浏览器的行为。阅读此链接上的模式:并在以下链接上获取此模式的解决方案:
<script>
        $(document).on("change", "input[name='chk']", function () {
            var checkbox = $(this);
            var checked = checkbox.prop('checked');
            $.ajax({
                url:"<?php echo base_url("contact-details-availability"); ?>",
                type: 'post',
                data: {
                    action: 'checkbox-select', 
                    id: checkbox.data('contact_avl'), 
                    checked: checked
                      },
                success: function(data) {
                    //alert(data);
                },
                error: function(data) {
                   // alert(data);
                    // Revert
                    checkbox.attr('checked', !checked);
                }
            });
        });
    </script>
<input type="checkbox" name="chk" id="chk" data-contact_avl="val" value="1">check