【发布时间】:2021-08-05 07:45:18
【问题描述】:
在将数组数据显示到 HTML 表中时,我得到一个为 foreach() 提供的无效参数。请帮我解决这个问题。
我得到以下错误, 警告:在第 56 行的 /Applications/XAMPP/xamppfiles/htdocs/mf/view_cart.php 中为 foreach() 提供的参数无效
<?php
$bill= 0;
$sno = 1;
foreach($_SESSION as $products){
//print_r($products);
print "<tr>";
echo "<form action='edit_cart.php' method='post'>";
if (!$products) $products = array();
foreach($products as $key =>$value){
var_dump($products);
if($key == 0){
echo "<input type='hidden' name='name$key' class='form-control' value='".$value."'>";
echo "<td>".$value."</td>";
} else if($key == 1){
$p = $value;
echo "<input type='hidden' name='name$key' class='form-control' value='".$value."'>";
echo "<td>".$value."</td>";
}else if($key == 2){
$q = $value;
print "<td><input type='number' name='name$key' class='form-control col-xl-4 text-center' min='1' value='".$value."'></td>";
$bill = ($p * $q);
echo "<td>".($bill)."</td>";
echo "<td><input type='submit' name='event' value='Update' class='btn btn-sm btn-warning'></td>";
echo "<td><input type='submit' name='event' value='Delete' class='btn btn-sm btn-danger'></td>";
}
}
echo "</form>";
print "</tr>";
}
print "</table>";
print "</div>";
?>
var_dump($products); Output.
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(5) { [0]=> string(5) "Shirt" [1]=> string(4) "1000" [2]=> string(1) "2" [3]=> string(1) "1" [4]=> string(14) "coconut-1.jpeg" }
array(3) { [0]=> string(14) "All in One Set" [1]=> string(3) "140" [2]=> string(1) "4" }
array(3) { [0]=> string(14) "All in One Set" [1]=> string(3) "140" [2]=> string(1) "4" }
array(3) { [0]=> string(14) "All in One Set" [1]=> string(3) "140" [2]=> string(1) "4" }
【问题讨论】:
-
这通常意味着您为 foreach 循环的 arg 1 提供的参数(数组/对象)不是数组或对象。我会 var_dump 该循环中的参数,以便您可以看到传递给循环的内容。
-
第 56 行是哪一个?您可能想要修复您的 HTML,缺少一个起始
<table>,<form>不允许在<tr>中,用您的表单包围您的表格或将其放在<td>中。然后结束时也是多余的</div> -
不是您当前的问题,但此代码的格式在将来很难调试。试试3v4l.org/SBDRU,也不确定为什么要交换
echos 和print。需要var_dump($products)才能为您提供帮助。 -
先生添加了 var_dump($products);输出请帮帮我
-
第 56 行是 foreach($products as $key =>$value)