Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对PHP/MySQL数据使用复选框_Php_Mysql_Checkbox - Fatal编程技术网

对PHP/MySQL数据使用复选框

对PHP/MySQL数据使用复选框,php,mysql,checkbox,Php,Mysql,Checkbox,我已经计算出了足够多的数据,可以在我的表中循环并返回一个复选框列表,这些复选框将与产品匹配。我现在的问题是,我无法找到正确的方法,在选择它们并返回给定产品的已选中/未选中状态后循环它们。虽然涉及到一些MySQL,但这部分不是问题所在,我知道如何插入数据库或更新…当从下拉列表中选择产品时,我需要能够填充复选框 下面是我最初用来显示所有类别的代码,供选择 <ul class="categories"> <?php $query = "SELECT * FROM pro

我已经计算出了足够多的数据,可以在我的表中循环并返回一个复选框列表,这些复选框将与产品匹配。我现在的问题是,我无法找到正确的方法,在选择它们并返回给定产品的已选中/未选中状态后循环它们。虽然涉及到一些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,…,则必须知道复选框的计数。所以,您应该将此计数放在隐藏字段中,或者再次从数据库中检索它
    • 如果要设置复选框的选中状态,则必须使用“选中”html属性,而不是“值”:

    echo“
  • $category
  • ”;
    • 当请求来自客户端时,您应该手动迭代所有$\u POST[“p\u cat$i”]变量,并使用类似isset的内容($\u POST[“p\u 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");
        }
    }
    

    你想干什么?您的描述中不完全清楚。您是否正试图根据查询返回的结果选中/取消选中复选框?在
    产品
    表中是否有表示选中/取消选中状态的字段?验证和保留动态复选框的状态:
    $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");
        }
    }