【问题标题】:How to insert data into db using checkbox using ajax and php without form如何使用没有表单的ajax和php使用复选框将数据插入数据库
【发布时间】:2015-10-07 04:36:38
【问题描述】:

我有一个复选框,当我选中它时,我想将复选框的值输入到数据库中。请帮我找到 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';
}

但它不会起作用

【问题讨论】:

  • But it won't works 哪个部分在这里不起作用??
  • 你看过 firbug 来检查是否发送到 url 吗?
  • 值未通过并显示错误未定义索引 id 并已检查
  • 在 ajax 中,var_dump($_POST); 你会看到所有值都发布了。
  • 尝试使用change 事件代替click,还有一件事将checked 替换为任何其他事件,因为有一个同名的属性。告诉我。

标签: php jquery ajax codeigniter


【解决方案1】:

这是工作的 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>

HTML

<input type="checkbox" name="chk" id="chk" data-contact_avl="val" value="1">check

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

1] 将var checked = checkbox.attr('checked'); 更改为var checked = checkbox.prop('checked');

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

3] 将onclick 更改为onchange

【讨论】:

【解决方案2】:

试试这个:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-30
    • 1970-01-01
    相关资源
    最近更新 更多