一个PHP foreach循环里面复选框以删除任何检查(Checkbox inside a php

2019-10-19 06:49发布

  echo "<form name='input' action='admin_selecteren_voor_verwijderen.php' method='post'>"; $sql_bestelling= "SELECT * FROM producten"; foreach($dbh->query($sql_bestelling) as $row) { $product_id=$row['product_id']; $product_naam=$row['product_naam']; $prijs=$row['prijs']; $foto=$row['foto']; echo " <br> <img src='$foto' height='70' width='50' border='0'> <b>$product_naam</b> <input type='checkbox' name='$product_naam' value='$product_naam'></br> </br></br></br>"; //if (isset($_POST['submit'])){ // $sql = "DELETE FROM `producten` WHERE product_naam='$product_naam'"; // $query = $dbh->prepare( $sql ); // $result = $query->execute(); //} } if(!empty($_POST['checkbox'])) { foreach($_POST['checkbox'] as $check) { echo "check: ", $check; } } echo " <input type='submit' value='Delete'> </form>"; ?> 

我想在我的网店管理员页面的产品列表。 每个产品都有一个复选框。 我希望能够删除所有复选框的产品进行检查。 但我不知道上面怎么..是我到目前为止所。 添加的图片是如何看起来在页面上。 但网页是用foreach循环作为可以在代码中可以看出,从数据库中选择产品的列表。 该复选框也处于环路。 我不知道如何来的每一件产品是检查一个变量,然后从数据库中删除它们分配。 谁能帮我?

Answer 1:

您正在寻找$_POST['checkbox']但是这不是你在你的表格。 命名复选框所有checkbox[]并使用$ product_naam作为值。

<input type='checkbox' name='checkbox[]' value='$product_naam'>

现在,您可以遍历它,并与您删除foreach循环。



Answer 2:

命名所有的复选框相同,如delete[]并且,把产品的名称在每个复选框的值。

例如:

<form action="..." method='post' > 
    user1<input type="checkbox" name="delete[]" 
                value="<?php echo $product_naam ?>" /><br />
    user2<input type="checkbox" name="delete[]" 
                value="<?php echo $product_naam ?>" /><br />
    user3<input type="checkbox" name="delete[]" 
                value="<?php echo $product_naam ?>" /><br />
    user4<input type="checkbox" name="delete[]" 
                value="<?php echo $product_naam ?>" /><br />
    <input type='submit' value='delete' />
</form>

删除查询:

<?php
if(isset($_POST['delete'])){
    $ids = $_POST['delete'];
    $sql = "DELETE FROM `producten` WHERE product_naam
                   IN('".implode("','", $ids)."')";
    //execute query
}
?>


Answer 3:

你不应该命名复选框,产品名称,只是把它删除或东西。 然后你就可以使用foreach方法从数据库中删除他们,就像这样:

<?php

    echo "<form name='input' action='admin_selecteren_voor_verwijderen.php' method='post'>";

    $sql_bestelling= "SELECT * FROM producten";
    foreach($dbh->query($sql_bestelling) as $row)
        {   

            $product_id=$row['product_id'];
            $product_naam=$row['product_naam'];
            $prijs=$row['prijs'];
            $foto=$row['foto'];


            echo "


            <br>
            <img src='$foto' height='70' width='50' border='0'>
            <b>$product_naam</b> <input type='checkbox' name=delete' value='$product_naam'></br>
            </br></br></br>";

            //if (isset($_POST['submit'])){
            //  $sql = "DELETE FROM `producten` WHERE product_naam='$product_naam'";
            //  $query = $dbh->prepare( $sql );
            //  $result = $query->execute();
            //}


            }
if(isset($_POST['delete'])) {
    foreach($_POST['delete'] as $delete){ {
        $sql = "DELETE FROM producten WHERE product_naam= $delete"; 
        $query = $dbh->prepare( $sql );
        $result = $query->execute();

    }
}





    echo "  
    <input type='submit' value='Delete'>
    </form>";



?>

另外,在我看来你错把“价值”与“名”,读了它。 这将是很好的阅读一些有关PDO,MySQL的是不是安全。 http://www.php.net/manual/en/book.pdo.php



文章来源: Checkbox inside a php foreach loop to delete whatever is checked