用户位于必须确认注销活动的页面上。当点击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;
}
但是当用户单击按钮时,重定向可以正常工作,但数据库中的删除不会发生
1条答案
按热度按时间2admgd591#
你的ajax调用没有引用
actID
. 你唯一能通过的就是fct=deleteMemberFromActivity
. 您的服务器不知道您要删除哪个用户。此外,还应该发布这些值。任何用户都可以看到您正在使用的结构,并交换url中的数据以将数据发送到服务器。