问题描述
在将数组数据显示到 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" }
解决方法
看来您将 $_SESSION 对象用于不仅仅是产品 - 也许那里有一些用户信息。我建议将您的所有产品都移到 $_SESSION['products']