从javascript/php的网页上点击按钮从数据库中删除一个条目

cetgtptt  于 2023-01-01  发布在  Java
关注(0)|答案(2)|浏览(150)
    • bounty将在5天后过期**。回答此问题可获得+100声望奖励。flash希望引起更多人关注此问题。

我有一个html/php/javascript代码,如下所示,它在网页上输出以下3个元素(如下所示的代码):

    • 索引. php**:
<html>
<head> ABCDE </head>
<body>
<dl id="dl_<?php echo $row['attribute']; ?>"><a href="abcde.php?<?php echo 'id='.rawurlencode($row['attribute'])
        .'&action='.rawurlencode($row['action'])
        .'&name='.rawurlencode($row['map_value_name']); ?>">
        <?php echo $row['attribute']; ?></a> (
    <?php echo $row['owner']; ?>)
    <button type="button" class="btn btn-danger"
        onclick="deleteAttribute('<?php echo $row['attribute']; ?>')">Delete</button>  <!-- Delete button -->
    <dd><?php echo $row['description']; ?></dd>
</dl>

<!-- script -->

<script>
    function deleteAttribute(attribute) {
        console.log(attribute);
        console.log('I am in attribute');
        jQuery.ajax({
            url: 'delete.php',
            type: 'post',
            data: 'attribute='+attribute,
            success: function(result) {
                jQuery('#dl_'+attribute).hide(500);
            }
        });
    }
</script>
</body>
</html>

它打印:
早安
你好世界
晚上好
世界
午安
你好
上面代码(index.php)中的echo $row['attribute'];将打印第一行
上面代码(index.php)中的echo $row['description'];将打印第二行。
我正在使用下面的文件(delete.php)从数据库中删除一个条目,点击网页上的删除按钮。

    • 删除. php文件**
<?php
require 'connect.php';

$attribute = $_POST['attribute'];
$sql = "Delete from attributes where attribute='".$attribute."'";
$stmt = $con->prepare($sql);
$stmt->execute();

?>
    • 问题陈述:**

点击上面index.php文件中的删除按钮,我没有看到任何条目从网页和数据库中删除。
我想知道我需要在上面的delete.phpindex.php文件中进行哪些更改,以便在单击删除按钮时,从网页和数据库中删除条目。

lh80um4z

lh80um4z1#

试试这个
delete.php

<?php

$db = mysqli_connect('localhost', 'username', 'password', 'database_name');

// parameter was passed in the request
if (isset($_POST['attribute'])) {
  $attribute = mysqli_real_escape_string($db, $_POST['attribute']);

// Delete the entry 
  $query = "DELETE FROM Cust_order_hist WHERE attribute = '$attribute'";
  mysqli_query($db, $query);
}

// Close the database connection
mysqli_close($db);

还需要修改中的deleteAttribute函数
index.php

<!-- script -->

<script>
function deleteAttribute(attribute) {
  console.log(attribute);
  console.log('I am in attribute');
  jQuery.ajax({
    url: 'delete.php',
    type: 'post',
    data: { attribute: attribute },
    success: function(result) {
      jQuery('#dl_'+attribute).hide(500);
    }
  });
}
</script>
vs91vp4v

vs91vp4v2#

    • 首先,**在id="dl_<?php echo $row['attribute']; ?>"处使用class代替id
    • 第二,**将数据(如对象)传递给delete.php。它可以是data:{attribute:attribute},然后,在成功中,您的代码可能如下所示:$('.dl_'+attribute).hide(500);.

delete.php文件内,确保您获得来自上一页的属性,如果有您想要的属性,然后删除它。
希望这能管用。

相关问题