一个数组接受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;
} ?>