如何使用带有ajax和php的复选框将数据插入到数据库中而不使用表单

时间:2015-10-07 04:36:39

标签: 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-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);
        }
    });
});

public function add_contact_details_availability()
{
    if($_POST['action'] == 'checkbox-select') {
         $checkbox = $_POST['id'];
         $checked = $_POST['checked'];
        // Your MySQL code here
        echo 'Updated';
    }
           echo 'Code ran';
}

但它不会起作用

2 个答案:

答案 0 :(得分:2)

这是工作JQuery

bc.setVisibility(web.canGoBack()? View.VISIBLE : View.INVISIBLE);

HTML

<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>

我说它是工作因为所有三个值都在传递。 对修复所做的更改是:

1]将<input type="checkbox" name="chk" id="chk" data-contact_avl="val" value="1">check 更改为var checked = checkbox.attr('checked');

2]将var checked = checkbox.prop('checked');更改为ID:id: checkbox.attr('contact_avl')

3]将checkbox.data('contact_avl')更改为onclick

答案 1 :(得分:0)

试试这个:

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);
        }
    });