2015-10-07 55 views
1

我有一个复选框,当选中它我想输入数据库的复选框的值。请帮助我找到这个Ajax和PHP代码。 我想这如何插入数据到数据库使用复选框使用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'; 
} 

但它不会工作

+3

'但它不会works'哪部分不会在这里工作? –

+0

你看过firbug来检查发送到url吗? – user4419336

+0

该值没有通过,并显示错误未定义的索引ID和检查 – Ann

回答

2

这里是工作的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]更改onclickonchange

+0

感谢的人,它的工作.. – Ann

+0

我有一个更多的怀疑,一旦我们检查复选框,刷新页面后仍然检查。如何可能? – Ann

+0

大部分时间是因为浏览器的行为。在这个链接上阅读关于它的模式:http://stackoverflow.com/questions/3176155/checkbox-stays-checked-on-page-refresh并获得此解决方案在以下链接:http://stackoverflow.com/questions/ 10954839 /取消选中,复选框,在Mozilla的刷新 – Suyog

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); 
     } 
    }); 
相关问题