使用 Javascript 和 PHP 从数据库中删除项目


Using Javascript and PHP to delete an item out of database

我正在使用锚标记来运行JS函数confirm((,如果用户单击确定,它会添加"deltopic=id",并使用$_GET方法获取"deltopic"删除该特定项目,但它似乎找不到$_GET['deltopic']

<script language="JavaScript" type="text>
  function deltopic(title, tid) {
    if(confirm("Are you sure you want to delete '" + title + "'")){
      window.location.href = "?viewtopic.php&deltopic=" + tid;
    }
  }
</script>
<?php
if(isset($_GET['deltopic'])){
if($_GET['deltopic'] !=='1'){
    $query = "DELETE FROM `bkg`.`bkg_topics` WHERE `bkg_topics`.`topic_id` = :topicid";
    $query_params = array(':topicid' => $_GET['deltopic']);
    try{
        $stmt = $db->prepare($query);
        $result = $stmt->execute($query_params);
        header('Location: index.php?forums&action=deleted');
        exit;
    } catch(PDOException $e) {
        $error[] = "An error has occured. Please try again later.";
    }
}
echo "deltopic is set";
}

我添加了最后一个回显,只是为了看看它是否检查deltopic是否设置,或者它是否是我只是没有看到的 SQL 中的错误。但是我没有看到"deltopic 已设置"。

不确定我做错了什么和/或我忘记了什么。我有与此类似的代码,确实有效,并仔细检查了它。

编辑:我在我的"window.location.href"字符串中看到我正在做的错误,我在其中将.php添加到 ?viewtopic 的末尾,使其?viewtopic.php。删除.php也解决了我的问题。

window.location.href = "?viewtopic.php&deltopic=" + tid;

将导致 URL,其中"viewtopic.php"是 URL 查询的一部分。也许您希望它在路径中:

window.location.href = "viewtopic.php?deltopic=" + tid;