2012-12-04 157 views
2

我在頁面上有一個按鈕,當用戶按下它時,它會在頁面上創建另一個「聯繫人」字段。聯繫人字段允許他們將新聯繫人添加到他們的個人資料。此外,他們可以多次點擊該按鈕,並創建許多「聯繫人」字段。如何用PHP計算動態HTML表單輸入數組?

雖然問題是我很難計算添加了多少「聯繫」文件夾。這裏是該按鈕被點擊時產生的一些HTML:

<div class="item"> 
    <label for="in-1v">First Name <span>*</span></label> 
    <div class="text"> 
     <input type="text" id="in-1-0" name="member[0][fname]" value="" /> 
    </div> 
</div> 
<div class="item"> 
    <label for="in-2-0">Last Name <span>*</span></label> 
    <div class="text"> 
     <input type="text" id="in-2-0" name="member[0][lname]" value="" /> 
    </div> 
</div> 

每次按鈕被點擊時,名字= 「構件[0] [L-NAME]」 將成爲名稱=「構件[] [lname]「,並且每次單擊該按鈕時將繼續遞增。如前所述,用戶可以在頁面上多次執行此操作。

我使用PHP來循環通過多維數組:

$array = $_POST['member'] ; 
foreach($array as $array_element) { 
    $fname = $array_element['fname']; 
    $lname = $array_element['lname']; 
} 

我如何使用PHP來確定多少的Fileds增加了,所以我可以通過他們循環?

任何幫助,非常感謝!

+0

這是否PHP的工作?它是否循環遍歷數組?我的理解是你無法做到像這樣從HTML到PHP的多模數組。 – shapeshifter

+0

@shapeshifter - 是的,你可以......它是完全有效的 –

+0

是的,上面的代碼通過多聯陣列 – three3

回答

6

你可以簡單地得到一個數,像這樣:

$count = count($_POST['member']); 

你也可以再修改你的循環看起來像這樣:

// First check to see if member is set and is a valid array 
if (!empty($_POST['member']) && is_array($_POST['member'])) { 
    $count = count($_POST['member']); 
    for ($i = 0; $i < $count; $i++) { 
     $fname = $_POST['member'][$i]['fname']; 
     $lname = $_POST['member'][$i]['lname']; 
    } 
} 
+0

我也想這樣說,但我不認爲你可以從HTML多維數組像這樣的PHP。這實際上工作嗎? – shapeshifter

+0

@shapeshifter - 是的,正如我上面所說,你可以。 –

+1

謝謝sooo! – three3