我尝试使用url和GET将循环变量发送到另一个页面。但$ _GET只打印最后一个值。
现在我的代码
...
//example
$codereg[0] = 6;
$codereg[1] = 2;
$codereg[2] = 67;
if ($option =='sent')
{
foreach($codereg as $ids)
{
header("location:checkout.php?id=$userId&productIds[]=$ids");
}
}
这是我的checkout.php
<?php
$userId= $_GET['id'];
$code= $_GET['productIds'];
foreach($code as $test)
{
echo $test;
}
?>
有人帮我修改代码或提供更好的解决方案......
答案 0 :(得分:0)
foreach($codereg as $ids)
{
header("location:checkout.php?id=$userId&productIds[]=$ids");
}
您应该只有一个标头位置。它不能循环。
您可以使用分隔符逗号执行此操作:
header("location:checkout.php?id=$userId&productIds=".implode(',', $ids));
你的处理程序checkout.php
:
$userId= $_GET['id'];
$ids = explode(',', $_GET['productIds']);
var_dump($ids);
使用$_GET
对于产品结帐并不是一个好主意。 $_GET
可以轻松修改,网址长度有限。所以count productIds是有限的。
您可以使用$_SESSION
代替$_GET
来存储productIds。
$_SESSION["productIds"] = $ids;
答案 1 :(得分:-1)
这样做:
$codereg[0] = 6;
$codereg[1] = 2;
$codereg[2] = 67;
if ($option =='sent') {
header('location:checkout.php?id=$userId&productIds[]=' . implode('&productIds[]=', $codereg));
}