我从SUCCESS功能获得的警报值是正确的。他们是:
serviceID=123&acceptAgreement=on
acceptAgreement是一个输入复选框。
数据库文件未更新。我从ajax URL文件尝试了var_dump($ _ POST),但没有任何反应。我认为这不是在“查找”位于主目录子目录中的URL。 我的js文件:
$("#frmServiceAgreement").submit(function(event){
var values = $(this).serialize();
if($("input[name^='acceptAgreement']").is(":checked")) {
$.ajax({
url: "/admin/service.php",
type: "post",
data: values,
success: function(result){
window.alert(values);
},
error:function(){
alert("failed");
console.log("ooops!");
}
});//end ajax
} else {
$(".popup").fadeIn('slow');
}
event.preventDefault();
});
我的URL文件是子目录admin / service.php中的service.php(注意:也许我的if语句需要更改,因为我的alertAgreement的警报值为ON而不是1,这是我要存储在我的URL中的值db中的tinyint列。
<?php
include('../xxx/functions.php');
$serviceID = protect($db,$_POST['serviceID']);
$acceptAgreement = protect($db,$_POST['acceptAgreement']);
if($acceptAgreement==1){
$sql = $db->query("UPDATE services SET serviceAgreement=1 WHERE id=$serviceID");
} else {
$sql = $db->query("UPDATE services SET serviceAgreement=0 WHERE id=$serviceID");
}
?>
答案 0 :(得分:0)
当我的输入框被选中(并且is:checked为true)时,ajax将“ on”作为变量的值发布,而不是1,这是我最终要存储在tinyINT列中的值。 。1为true或0为false。将aif语句添加到我的ajax URL中后,检查发布的值是否为“ on”,然后执行以下UPDATE语句
$sql = $db->query("UPDATE services SET serviceAgreement='1' WHERE id=$serviceID");