2010-06-23 53 views
0

$ _ 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也包含值「431」爲products_id和「3」爲購物車 我可以看到,由於字符串「數組」附加到這些他們沒有被訪問,所以有人可以建議我如何解決這個問題

編輯按菲利克斯審查

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

回答

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 

使用新的變量來構建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."&"; 
} 
+0

+1請參閱更新的問題 – 2010-06-23 12:01:09

+0

@OM永恆:可以顯示更多的代碼?這似乎只是它的一部分,我在那裏找不到問題。 – 2010-06-23 12:04:31

+0

這就是問題在哪裏費利克斯,因爲你說的回聲的URL是造成問題..我們正確的是..這是我們必須進行校正的地方,我不知道 – 2010-06-23 12:06:28

0

你可以在一個變量名中使用「var []」 http形式。你需要只使用get方法嗎?嘗試後

0

它只顯示432爲​​,因爲該鏈接中唯一的其他products_id被稱爲Arrayproducts_id

您將需要重命名此回​​=)

除非你想ofcourse打電話Arrayproducts_id。

+0

那是什麼問題是我沒有通過任何這個鍵名爲「Arrayproducts_id」我想刪除這個「數組」字符串中附加的url – 2010-06-23 11:55:32

+0

您是否可以編輯設置此URL的鏈接? – 2010-06-23 11:57:50

+0

plss查看更新 – 2010-06-23 12:03:09

0

第一個產品ID被命名爲「Arrayproducts_id」。所以你可以打印「Arrayproducts_id」