【问题标题】:$_GET variable cannot identify the first array element$_GET 变量无法识别第一个数组元素
【发布时间】:2010-06-23 11:50:09
【问题描述】:

$_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” 我可以看到,由于附加了字符串“Array”,它们没有被访问,所以有人可以建议我如何解决这个问题

根据 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>";

【问题讨论】:

    标签: php url


    【解决方案1】:

    看起来像你 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
    

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

    例如:

    $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."&";
    }
    

    【讨论】:

    • @OMThe Eternity:可以显示更多代码吗?这似乎只是其中的一部分,我在那里找不到问题。
    • 这就是问题出在 Felix 的地方,正如你所说的 url 的回声正在造成问题..你是正确的..这是我们必须进行更正的地方,我不是意识到
    • +1 一直在尝试解决这个问题。但是多亏了你,我学到了一些新东西 =)
    • @OMThe Eternity,问题是$proid_30 在您发布的循环运行之前 有一些不好的价值。所以这个循环很好,问题出在这之前。
    • @OMThe Eternity:我想你这里有一个误解。你不创建数组,你创建的字符串具有更多的特殊结构。
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      它只显示products_id432,因为链接中唯一的其他products_id 称为Arrayproducts_id

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

      除非你当然想调用 Arrayproducts_id。

      【讨论】:

      • 问题是我没有传递任何名为“Arrayproducts_id”的密钥我想删除附加在 url 中的这个“Array”字符串
      • 你能编辑设置这个 URL 的链接吗?
      • Felix 似乎在这个问题上打败了我 =)
      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多