Php 使用ajax删除数据库条目不起作用
用户所处的页面必须确认注销某项活动。 当点击OK时,他的注册条目应该在数据库中被删除,然后他应该被重定向。 以下是按钮处理程序的代码:Php 使用ajax删除数据库条目不起作用,php,jquery,mysql,ajax,Php,Jquery,Mysql,Ajax,用户所处的页面必须确认注销某项活动。 当点击OK时,他的注册条目应该在数据库中被删除,然后他应该被重定向。 以下是按钮处理程序的代码: $("#OK").click(function() { unsubscribeMember(); window.location.href="signup-for-event.php?memId=" + <?php echo $_SESSION['memberId'] ?>; }); 数据层代码如下
$("#OK").click(function()
{
unsubscribeMember();
window.location.href="signup-for-event.php?memId=" + <?php echo $_SESSION['memberId'] ?>;
});
数据层代码如下所示:
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;
}
但是当用户单击按钮时,重定向可以正常工作,但是数据库中的删除不会发生您的AJAX调用没有引用
actID
。您传递的唯一内容是fct=deleteMemberFromActivity
。您的服务器不知道您要删除哪个用户
此外,您应该发布这些值。任何用户都可以看到您正在使用的结构,并在URL中交换数据以将数据发送到您的服务器。在使用jQuery发送的数据中,您使用“memId”,在PHP脚本中,您使用$\u GET['memberId']可能存在重复。。另外,我建议在发送数据时使用POST而不是GET。@ARN刚刚将memberId更正为memId,仍然相同。数据项不会在中被删除database@IvanGajic不,不,不,再重复一遍,不。永远不要做
async:false
@AlleV。我会再说一遍,为了对一切神圣(或邪恶)的爱,请不要做async:false
。这将导致负面的用户体验,一些浏览器已经开始禁止这种可怕的编程漏洞。
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;
}