0

我已经想出足够多的循环遍历我的表格并返回将与产品匹配的复选框列表。我现在的问题是,我无法找出在选择它们后循环遍历它们的正确方法,并将它们作为给定产品的选中/未选中返回。认为涉及到一些 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>
4

2 回答 2

0
  • 你应该给每个复选框一个自己的名字。例如,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"]) 的方式获取状态。
于 2012-04-14T08:32:11.400 回答
0

在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");
    }
}
于 2012-04-14T09:37:11.643 回答