2011-06-05 21 views
1
<?php 
// code that connects to database 
?> 
<table> 

    <form method="get" action="processorder.php"> 
      <?php 
      while (list($pizzaId, $pizzaName, $pizzaNumber, $pizzaPrice) = mysql_fetch_row($resultaat)) 
        { 

         echo   "<tr> 
            <td>".$pizzaName."</td> 
            <td>".$pizzaNumber."</td> 
            <td>".$pizzaPrice."</td> 
            <td> <input type='text' name='$pizzaId' value='$qty' size='3' /></td> 
            </tr>"; 
        } 
      mysql_close($db);   
      ?> 
     <input type="submit" value="Order now" /> 

我想顯示輸入元素中存在值的比薩餅。 processorder.php文件將如下所示: 我的網址顯示pizzaId與'='後面的值。所以我想我手上有一個聯合陣列。 我想我把foreach循環中我processorder.php會像如何在新文件中使用輸入元素的值(GET方法)

foreach ($_GET['pizzaId'] as $pizza => $qty)  
      { 
       echo $pizza." ".$qty."<br />"; 
      } 

然而,當我使用foreach循環,在瀏覽器中的錯誤說,我的foreach循環的說法是,因爲$無效_GET ['pizzaId']不是一個以數組開頭的數組(我使用is_array進行了檢查)。 那麼如何在輸入元素的value屬性中訪問這些值?

回答

1

你$ pizzaId類似的使用實現這一目標是一個整數。 我會改變輸入元素名稱=「比薩餅[$ pizzaId]」的名稱,然後你可以像這樣通過PHP訪問:

foreach ($_GET["pizzas"] as $pizzaId => $pizzaQty) { 
    echo "$pizzaId $pizzaQty<br />"; 
} 

用這種方法,而不僅僅是簡單的名稱=」披薩[]「,你還保留與實際披薩的關聯。

+0

這些類型的方括號在我的名字屬性中使得URL像http:// localhost/pizzashop/bestelling_verw.php?16010%5B%5D = 4&16011%5B%5D = 4&16012%5B%5D = 4&16020%5B%5D = 4&16021%5B%5D = 4 – Immers 2011-06-05 11:35:17

+0

@the_visit:這是因爲您使用GET方法,將附加參數到URL。您可以切換到POST(在HTML FORM標籤中),並將foreach()中的$ _GET更改爲$ _POST。 – 2011-06-05 11:39:50

+0

@ Dvir Azulay:將它改爲post數組並不會改變情況,但我仍然無法訪問這些值。 – Immers 2011-06-05 12:01:31

0

如果你需要把一個數組$ _GET那麼你的網址應該會像:

//site/page?pizzaID[]=123&pizzaID[]=124 

您可以用輸入字段的name

<input name="pizzaID[]" /> 
<input name="pizzaID[]" /> 
+0

這裏還有,方括號不會作爲方括號在我的url中傳遞,而是用''''sings和數字5來表示。這裏發生了什麼? – Immers 2011-06-05 11:42:28

+0

這是另一個問題,你應該打開一個新的問題:)(這可能是因爲你有一些淨化器在你的輸出之前) – dynamic 2011-06-05 11:43:10

相關問題