2015-10-07 59 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); 
     } 
    }); 
相關問題