2013-04-20 101 views
0

我有一個很長的變量列表,其末尾有一個數字。例如address1和我一直在頂端地址14。我想從一個表單發佈這些,而不是輸出$ address1 = $ _POST [address1]我想創建一個循環,循環14次,並在變量名稱和地址結尾處更改數字$ _POST部分...

我正在努力做到這一點。我有一個創建變量的循環,但我不斷收到錯誤,因爲它沒有執行$ _POST位。

有人可以協助嗎?謝謝。

這是我目前有:

 $x = 0; 
     while($x < 14) { 
      $address = "address" . $x; 
      $address = $$address; 

      $string = "<p>Address$x:" . $address[0] . "</p>"; 
      echo $string; 
      $x = $x + 1; 

}

+0

你是什麼由$ _ POST意味着所有地址的數組 - 位?你沒有形式?您是否嘗試創建名稱和地址的表單,用戶必須輸入?然後你想用$ _POST獲取這些值。那是你要的嗎? – bestprogrammerintheworld 2013-04-20 14:12:09

+0

我在另一個頁面上有一個窗體。它將字段貼到應有的位置,但我有14個字段,但名稱只改變了一位數,因此address1,address2,address3一直到address14。我需要創建一個循環來從發佈它們的表單接收這些。因此,在頁面的頂部,您使用$ _POST函數創建一個新變量,但我需要14次。例如:$ address1 = $ _POST [address1],$ address2 = $ _POST [address2]依此類推,直到地址爲14. – Ade 2013-04-20 14:16:52

+0

$ address [0] to $ address [$ x]? – bestprogrammerintheworld 2013-04-20 14:18:28

回答

2

你爲什麼不這樣做:

for ($i=0; $i < 14; $i++) { 
    $address[$i] = $_POST['address'.$i]; 
} 
0

試試這個:

$addresses = array(); 
for($x = 0; $x <= 14; $x++) 
{ 
    $address_field = "address" . $x; 
    if(array_key_exists($address_field, $_POST)) { 
     $addresses[$x] = $_POST[$address_field]; 
     echo '<p>Address', $x, ': ', $addresses[$x], "</p>\n"; 
    } 
} 
0

你也可以在for中使用數組語法L:

<input type="text" name="address[1]" /> 
<input type="text" name="address[2]" /> 
<input type="text" name="address[3]" /> 
... up to 14 

在PHP:

$address = $_POST['address']; 

$現在的地址是包含

+0

在名稱中不需要指定元素。只是名稱=「地址[]」爲所有元素將正常工作。 – Aris 2013-04-20 15:06:45

+0

是的,它沒有指定鍵的作品。只是爲了清楚而添加的,但你不需要它們。 – 2013-04-20 15:21:52