2012-07-28 105 views
2

我正在編寫一個幻想寵物遊戲。目前,我正在開發一種工具來幫助用戶管理他們的個人商店庫存。該工具包括更改每個項目的銷售價格的選項 - 這就是我的問題所在。在這裏,讓我告訴你:從PHP陣列發佈多個值

的HTML

<form method="post"> 
<input type="text" name="cost[$item_id]" value="" /> 
<input type="submit" name="submit" value="Submit" /> 
</form> 

$ ITEM_ID是對應於正在編輯的項目的變量。它必須包含在數組中,否則...我不知道哪個價格對應於哪個項目。

而且,此腳本:

<input type="text" name="cost[$item_id]" value="" /> 

重複在該店的庫存物品的數量。所以,表單可以包含無限量的這些條目。因此數組。

腳本

if(isset($_POST['update'])) { 

foreach ($_POST['cost'] as $key => $value) { 
$submitted_array = array_keys($_POST['cost']); 
echo ($_POST['cost'][$submitted_array[0]] . " " . $submitted_array[0]); 
} 

} 

上面的腳本作品......然而,將只打印首套自陣列的數據。

現在,這似乎很好 - 但是,請記住我如何說我可以有無限的成本條目?這是我的問題 - 當我使用一個變量替換上面腳本中的「0」時,函數將停止一起工作。我可以重複這個功能,如果我知道這個數組將包含多少個條目 - 但我不知道。那麼我能做什麼?有沒有簡單的解決我的問題?

向窗體中添加一個隱藏字段,指定要更改的項目數是可能的 - 我只是不知道它是否會有幫助。

如果您希望看到表單的屏幕標題以更好地理解我所說的內容,只需詢問即可獲得!

+0

看看這個http://stackoverflow.com/questions/10180810/php-傳遞和接收二維陣列從形式/ 10180886 – miqbal 2012-07-28 22:09:54

回答

5

這是因爲您只需要一次就重寫了多次變量$submitted_array

if (isset($_POST['update'])) { 
    $submitted_array = array_keys($_POST['cost']); 
    foreach ($_POST['cost'] as $key => $value) { 
     echo ($_POST['cost'][$submitted_array[0]] . " " . $submitted_array[0]); 
    } 
} 

此外,考慮你的cost數組,你不需要使用array_keys都:

if (isset($_POST['update'])) { 
    foreach ($_POST['cost'] as $item_ID => $item_cost) { 
     echo ($item_ID . " " . $item_cost); 
    } 
} 
+0

我試過這個答案,但它仍然只發布第一組數據。它確實打印了X次的數量,但是它只會發佈1組數據。 – Connie 2012-07-28 22:09:37

+0

@康妮:看我的編輯。嘗試第二個片段。 – 2012-07-28 22:10:09

+0

它工作完美! = D非常感謝您的幫助!對此,我真的非常感激! – Connie 2012-07-28 22:12:54