2014-02-27 47 views
0

我有一個簡單的列表通過MySql通過Ajax/Json填充。該列表只是一個標題和說明,每個條目都有一個checkbox。我需要checkbox,一旦點擊,推送到數據庫,它被點擊。你會怎麼做呢?如何使用Ajax將複選框信息添加到MySQL數據庫?

[順便說一句... 現在,因爲我有我的SQL數據setTimeInterval交付上飛它自動復位,我的複選框列表。我假設如果我記錄我的checkbox已通過布爾在SQL中設置,可能有一種方法來保持它檢查...]

我是新來的,我只是在玩並試圖學習,所以這些信息完全是理論上的。

+0

你應該提供你正在使用的代碼和你的表結構。 –

回答

0

您可以使用on()函數來偵聽複選框單擊。

$(function() { 
    $(document.body).on('click', 'input.mycheckbox', function() { 
     var checkbox = $(this); 
     var checked = checkbox.attr('checked'); 
     $.ajax('service.url', { 
      type: 'post', 
      data: {action: 'checkbox-select', id: checkbox.attr('id'), checked: checked}, 
      success: function(data) { 
       alert(data); 
      }, 
      error: function(data) { 
       alert(data); 
       // Revert 
       checkbox.attr('checked', !checked); 
      } 
     }); 
    } 
}); 

隨意問,如果你需要任何澄清或如果這不適合你的情況。

編輯:

的AJAX功能的data參數是將被張貼到你的PHP頁面的對象。當您的PHP代碼正在運行時,$_POST將是一個包含我們傳遞的值的數組。所以,$_POST['action']將是'複選框選擇',$_POST['id']將獲得ID,$_POST['checked']將是真或假取決於複選框是選中還是取消選中。您在Javascript中獲取ID的方法可能會改變;我只是把checkbox.attr('id')給你一個想法。

學習PHP時,在客戶端轉儲來自服務器的響應會很有幫助。示例PHP代碼:

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

我編輯了JS以顯示服務器的結果。

+0

service.url ???但我有連接到數據庫存儲在PHP變量。我可以使用它嗎? – SunRhythms

+0

@SunRhythms「service.url」是PHP頁面的URL的佔位符。用它的頁面URL替換它,你的PHP頁面應該能夠讀取$ _POST數組中的數據。 – acbabis

+0

對不起有困惑..... duhhh – SunRhythms

相關問題