2012-12-02 53 views
2

我猜這已被問過,但我做了一些搜索,一直沒能找到答案(可能是因爲我缺乏術語)。在窗體中傳遞多行輸入並在PHP中迭代它們?

我正在處理一個應用程序,該應用程序在表中顯示一堆輸入行,並且當表單被提交時,我需要遍歷每個輸入用輸入值更新數據庫。我一直在做的是命名輸入這樣的:

<input type="text" name="name1"><input type="text" name="gender1"> ... 
<input type="text" name="name2"><input type="text" name="gender2"> ... 
<input type="text" name="name3"><input type="text" name="gender3"> ... 
. 
. 
. 

然後在PHP這樣做:

for($i = 1; isset($_POST['name' . $i]); $i++) 
{ 
    $name = $_POST['name' . $i]; 
    $gender = $_POST['gender' . $i]; 
    // update DB with input values 
} 

在我的應用程序行,可以添加和刪除,也有每行約6個輸入,並且經常有幾十行。這對我來說似乎有點混亂,我想知道是否有更好的/更乾淨的方法來做到這一點?

回答

6

更好地採取HTML input array

<input type="text" name="name[]"> 
<input type="text" name="gender[]"> 

在PHP中使用下面的方法,你必須做以下

$cnt = count($_POST['name']); 
for($i=0;$i<$cnt;$i++){ 
    echo $_POST['name'][$i]; 
    echo $_POST['gender'][$i]; 
    .... 
    // do any update with database 
} 
+1

爲什麼downvoting好嗎? – GBD

+0

這是執行此任務的標準方式。 – SaidbakR

+0

我可以確定同一行中的不同輸入具有相同的索引嗎? (即在我的例子中,如果名稱和性別位於數組中,那麼它們需要具有相同的索引,以便我知道將它們放在同一行中)。 – Nate

相關問題