Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.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中的所有输入,我只需要选中的行_Php_Html - Fatal编程技术网

一个数组接受php中的所有输入,我只需要选中的行

一个数组接受php中的所有输入,我只需要选中的行,php,html,Php,Html,我想在数据库中插入几个项目及其数量 使用处理食品名称值的复选框来确定食品名称及其数量 代码如下: <?php ........ if(mysqli_num_rows($res) > 0){ while($row = mysqli_fetch_array($res)){ echo "<tr> <td><input type='checkbox' val

我想在数据库中插入几个项目及其数量 使用处理食品名称值的复选框来确定食品名称及其数量

代码如下:

 <?php      ........
       if(mysqli_num_rows($res) > 0){
        while($row = mysqli_fetch_array($res)){
            echo "<tr>
                    <td><input type='checkbox' value='$row[0]' name='food[]'></td>
                    <td>
                        $row[0]  
                        Qty: <input type='number' value='1' size='1' name='qty[]' id='qty'> 
                    </td>
                    <td align=right>$row[3]</td>
                </tr>";
        }
    }
 ?>

  <input type='submit' value='Add checked' class='btn btnSearch' name='add' id='btnadd'>

 </form>

为了给你一个更好的答案,改变这个

 <td><input type='checkbox' value='$row[0]' name='food[]'></td>
这应该行得通

因此,当您选中food中的一个框时,它会比较food2中的主列表,并说这是可以用于数量的匹配键


问题是复选框类型只传递选中的值,并且由于您使用的是数组,因此您将丢失参考数量的“键”。

这将使您了解如何保存

<?php 
if(isset($_REQUEST['add']),$_REQUEST['food']) { 
    $food = $_POST['food']; 
    $qty = $_POST['qty'];
    $foodcount = count($qty);
    $i=0;]
    foreach($qty as $quantity){
        If(isset($food[$i]) && !empty($food[$i]))
        {
             $sql = "insert into entry (foodName,qty, meal_name, date, email) values ('$food[$i]', '$quantity' ,'$meal', '$date'
        }
    }
    if(mysqli_affected_rows($cn) > 0){
        header("location:fitness.php"); 
    }else echo $sql;
 } ?>

是的,它应该是这样工作的,代码中没有任何内容告诉它忽略任何数量输入。使用同一个键将复选框和数字输入关联在一起,并从Quantity中删除食品中不存在的所有键。您想要的有点复杂。但基本上,您发送的是两个不同的计数行。如果你从30行开始,然后勾选5行,你会得到5行食物行和30行数量行。这就是它不起作用的原因。你不能那样做way@Devon你能写下你的想法吗?我没有得到it@Forbs那么解决办法是什么呢?:我在读你的旧评论。呵呵,好的,我会尝试另一种方法,因为当您将复选框与数组组合时,
food
中的$i会丢失,我会得到一个警告:array\u combine()希望参数2是数组,字符串给定Noh抱歉,我会解决这个问题,我可以像foreach一样使用它吗($array as$f=>$q)??cz它不是这样工作的:/
 <td><input type='checkbox' value='$row[0]' name='food[]'></td>
 <td><input type='hidden' value='$row[0]' name='food2[]'><input type='checkbox' value='$row[0]' name='food[]'></td>
foreach($_POST['food2'] as $key=>$val)
{
    if (in_array($val,$food,true))
        $array[$val] = $qty[$key];
}
<?php 
if(isset($_REQUEST['add']),$_REQUEST['food']) { 
    $food = $_POST['food']; 
    $qty = $_POST['qty'];
    $foodcount = count($qty);
    $i=0;]
    foreach($qty as $quantity){
        If(isset($food[$i]) && !empty($food[$i]))
        {
             $sql = "insert into entry (foodName,qty, meal_name, date, email) values ('$food[$i]', '$quantity' ,'$meal', '$date'
        }
    }
    if(mysqli_affected_rows($cn) > 0){
        header("location:fitness.php"); 
    }else echo $sql;
 } ?>