使用ajax删除数据库条目不起作用

ds97pgxw  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(221)

用户位于必须确认注销活动的页面上。当点击ok时,他的注册条目应该在数据库中被删除,然后他应该被重定向。下面是按钮处理程序的代码:

$("#OK").click(function()
    {
        unsubscribeMember();
         window.location.href="signup-for-event.php?memId=" + <?php echo $_SESSION['memberId'] ?>;
    });

下面是函数unsubscribember()的代码;

function unsubscribeMember()
{
    var data = "memId=" + <?php echo $_SESSION['memberId'];?> + "&actID=" + <?php echo $_GET['actID']; ?> ;
    alert(data);

    $.ajax({
        dataType: 'json',
        url: 'json-responses.php?fct=deleteMemberFromActivity',
        data: data,
        cache: false
    });
}

函数被正确调用,这由警报(数据)的输出显示memid=1600&actid=302“
json-responses.php文件包含以下行以调用数据层文件:

if ($_GET['fct'] == 'deleteMemberFromActivity')
{
    $result = deleteMemberFromActivity($connectionObject, $_GET['actID'], $_GET['memId']);
    echo $result;
}

数据层代码如下所示:

function deleteMemberFromActivity($PDOdbObject, $actId, $memberId)
{
    $deleteSignUpsSQL = "DELETE FROM 'member_activity' WHERE 'activity_id' = ? AND 'member_id' = ?";
    $stmt = $PDOdbObject->prepare($deleteSignUpsSQL);
    $stmt -> execute([$actId, $memberId]);
    $affected_rows = $stmt->rowCount();
    return $affected_rows;
}

但是当用户单击按钮时,重定向可以正常工作,但数据库中的删除不会发生

2admgd59

2admgd591#

你的ajax调用没有引用 actID . 你唯一能通过的就是 fct=deleteMemberFromActivity . 您的服务器不知道您要删除哪个用户。
此外,还应该发布这些值。任何用户都可以看到您正在使用的结构,并交换url中的数据以将数据发送到服务器。

相关问题