2014-01-16 28 views
2

我有這樣的代碼:阿賈克斯後,並得到複選框值

<script type="text/javascript"> 
function processForm() { 
$.ajax({ 
    type: 'POST', 
    url: '/ajax/checkbox.php?name=foton', 
    data: { checked_box : $('input:checkbox:checked').val()}, 

    success: function(data) { 
     $('#message').html(data); 
    } 
}); 
} 
</script> 

<input type="checkbox" name="foton" value="1" onclick="processForm()"> 

checkbox.php文件:

$checkbox = intval($_POST['foton']); 

if($checkbox == 1){ 
    mysql_query("UPDATE users SET sekretessFoton = 1 WHERE userID = $memberID"); 
}else{ 
    mysql_query("UPDATE users SET sekretessFoton = 0 WHERE userID = $memberID");  
} 

的問題是,我沒有得到$ _ POST [ '福田']的任何值 有什麼不對?

感謝

回答

1

編輯您的代碼:

$.ajax({ 
    type: 'POST', 
    url: '/ajax/checkbox.php', 
    data: { foton : $('input:checkbox:checked').val()}, 

    success: function(data) { 
     $('#message').html(data); 
    } 
}); 
/ajax/checkbox.php?name=foton 

這裏有一個$_GET參數這就是所謂的name及其價值foton

在我的代碼中,您發送的複選框的值爲$_POST參數,名爲foton

您沒有設置一個查詢字符串在你$.ajax URL時,指定的數據(而不是你重定向到一個網頁,其中將處理您的$_GET參數的一部分)。

0

您正試圖訪問未定義或發送的POST變量。

嘗試

$checkbox = intval($_POST['checked_box']); 

在你阿賈克斯要發送的數據爲checked_box。你也不會發布任何其他東西這個複選框的值。您發送的唯一其他值是查詢字符串?name=foton,可通過$_GET['name']訪問。我希望你明白這一點。

0

你必須交阿賈克斯本:

data: { checked_box : $('input:checkbox:checked').val()}, 

這裏checked_box是參數的名稱。你需要通過這個名字來獲得價值。

試試這個:

$checkbox = intval($_REQUEST['checked_box']);