我有这段代码:
<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']获得任何价值 怎么了?
由于
答案 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']);