Ajax不将序列化数据发布到URL

时间:2018-07-10 19:24:45

标签: php jquery ajax

我从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");
}
?> 

1 个答案:

答案 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");