$ _GET变量无法识别第一个数组元素

时间:2010-06-23 11:50:09

标签: php url

$ _ GET变量无法识别第一个数组元素。:

我在url中传递了一个类似于

的数组
  

http://www.example.com/form.php?action=buy_now&ft=prf&Arrayproducts_id[]=431&products_id[]=432&Arraycart[]=1&cart[]=3&Arrayid[]=431&id[]=432

但是当我使用print_r($ _ GET)打印数组“products_id”和“cart”时,它只显示我

Array
(
    [0] => 432
)
Array
(
    [0] => 3
)

现在你可以看到url它还包含products_id的值“431”和购物车的“3” 我可以看到,由于附加到这些字符串“数组”,他们没有被访问,所以有人可以建议我如何解决这个问题

  

根据Felix审核编辑

for($t=0;$t<4;$t++){

    $proid_30 .= "products_id[".$t."]=".$products_id."&";
        $bucket_30 .= "cart[".$t."]=".$_SESSION['qty_flex'][$t]."&";
        $idproid_30 .= "id[".$t."]=".$products_id."&";

        }
        $idproid_30.=" ";
$idproid_30 = str_replace("& ","",$idproid_30);
        echo "<script>window.location= '/print_ready_form.php?action=buy_now&ft=prf&".$proid_30.$bucket_30.$idproid_30."&osCsid=".$_GET['osCsid']."';</script>";

4 个答案:

答案 0 :(得分:2)

看起来你echo一个数组来创建你的URL。这不起作用:

$a = array(1,2);
echo $a;

打印

Array

您能否显示生成URL的PHP​​代码?

<强>更新

如果没有更多代码,我只能假设,但我认为$proid_30$bucket_30$idproid_30被初始化为数组。现在,当您追加一个字符串时,它们将被转换为字符串:

$a = array(1,2);
$a .= 'test';
echo $a;

打印

Arraytest

使用新变量构建网址或将其初始化为字符串

E.g:

$product = '';
$cart = '';
$id = '';
for($t=0;$t<4;$t++){
    $product .= "products_id[".$t."]=".$products_id."&";
    $cart .= "cart[".$t."]=".$_SESSION['qty_flex'][$t]."&";
    $id .= "id[".$t."]=".$products_id."&";
}

答案 1 :(得分:0)

您可以在http表单中使用变量名称,例如“var []”。你只需要使用get方法吗?试试帖子

答案 2 :(得分:0)

它仅显示432的{​​{1}},因为链接中唯一的其他products_id称为products_id

您需要将其重命名为Arrayproducts_id =)

除非你想打电话给Arrayproducts_id。

答案 3 :(得分:0)

第一个产品ID被命名为“Arrayproducts_id”。所以你可以打印“Arrayproducts_id”