如何将Loop值发送到另一个页面?

时间:2016-05-30 07:53:51

标签: php foreach get

我尝试使用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;
 }
 ?>

有人帮我修改代码或提供更好的解决方案......

2 个答案:

答案 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));
}