Ajax发布并获取复选框值

时间:2014-01-16 14:42:16

标签: php ajax post checkbox

我有这段代码:

<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 ['foton']获得任何价值 怎么了?

由于

3 个答案:

答案 0 :(得分: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的{​​{1}}参数,其name

在我的代码中,您要在名为foton的{​​{1}} 参数中发送复选框的值。

指定数据时,您不必在$_POST网址中设置查询字符串(而不是想要重定向到将处理您的{{1}的网页参数一部分)。

答案 1 :(得分:0)

您正在尝试访问未定义或发送的POST变量。

尝试

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

在您的ajax中,您将数据发送为checked_box。此外,您不会发布此复选框值的任何其他内容。您发送的唯一其他值是通过查询字符串?name=foton,可以通过$_GET['name']访问。我希望你明白这一点。

答案 2 :(得分:0)

你发布了ajax:

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

此处checked_box是您的参数的名称。你需要通过这个名字获得价值。

试试这个:

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