繁体   English   中英

在PHP / MySQL数据中使用复选框

[英]Using Checkboxes with PHP/MySQL Data

我已经找到足够的空间来遍历我的表并返回将与产品匹配的复选框列表。 我现在的问题是,在选择它们并将它们作为给定产品的选中/未选中返回之后,我无法找出正确的方法来遍历它们。 以为其中涉及到MySQL,那不是问题,我知道如何插入数据库或更新...从下拉列表中选择产品时,我需要能够填充复选框。

这是我最初用来显示所有类别以供选择的代码。

<ul class="categories">
  <?php 
    $query = "SELECT * FROM products";
    $result = mysql_query($query) or die(mysql_error());
    while ($row = mysql_fetch_assoc($result)) {
     $category = $row['category'];
     $catId    = $row['id'];  
     echo "<li><input class='catCheck' type='checkbox' name='p_cat[]' value='$catId' /> $category</li>";
    }
  ?>
</ul>
  • 您应该为每个复选框指定自己的名称。 例如,p_cat1,p_cat2,...
  • 然后,您必须记住为复选框指定的名称。 例如,如果名称是p_cat1,p_cat2,...,则必须知道复选框的数量。 因此,您应该将此计数放在隐藏字段中,或者再次从数据库中检索它。
  • 如果要设置复选框的选中状态,则必须使用“ checked” html属性,而不是“ value”:

echo "<li><input class='catCheck' type='checkbox' name='p_cat[]' ".($is_checked? " checked " : "")."/> $category</li>";
  • 当请求来自客户端时,您应该手动遍历所有$ _POST [“ p_cat $ i”]变量,并使用isset($ _ POST [“ p_cat $ i”])之类的状态。

在html页面中这样做

echo "<li><input class='catCheck' type='checkbox' name='p_cat['.$row['id'].']' value='$catId' /> $category</li>";

并在后端这样做

$delete = $_POST['p_cat'];

foreach ($delete as $id => $val) {
    if($val=='checked'){
        $query="DELETE FROM TABLE WHERE id = '".$id."'";
        $result= mysqli_query($connection, $query) or die("Invalid query");
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM