PHP7.4 表单数据returns空字符串

PHP 7.4 form data returns empty string

我尝试从数据库中删除数据

if (isset($_POST['checkbox']) && isset($_POST['delete_btn'])) {
    $productId = $_POST['id'];

    $stmt = $database->prepare("DELETE FROM product WHERE id = :id");
    $stmt->execute(array(':id' => $productId));
}

这是我的 HTML

<form action="/" method="POST" class="list-btn-top">
        <button class="btn" type="submit" name="delete_btn" id="delete-product-btn">Mass delete</button>
</form>

<?php foreach ($stmt as $product): ?>
    <div class="container">
        <form action="" method="POST">
            <input class="delete-checkbox" name="checkbox" type="checkbox" value="<?= $product['product_id'] ?>">
        </form>
        <p class="text-line"><?= $product['product_id'] ?></p>
        <p class="text-line"><?= $product['sku'] ?></p>
        <p class="text-line"><?= $product['name'] ?></p>
        <p class="text-line"><?= $product['price'] ?></p>
        <p class="text-line"><?= $product['product_value'] ?></p>
    </div>
<?php endforeach; ?>

你应该改变

$productId = $_POST['id'];

$productId = $_POST['checkbox'];

当您在复选框值中发送 id 但在您的代码中您选择了错误的索引,即 id

没有获得任何值的原因是您在提交按钮后立即关闭了表单。所以没有其他数据属于该表格。将按钮置于与复选框相同的形式,反之亦然。