2

ユーザーがボタンを押すと、ページに別の「連絡先」フィールドが作成されるボタンがあります。連絡先フィールドを使用すると、プロファイルに新しい連絡先を追加できます。また、ボタンは何度でもクリックでき、その数だけ「連絡先」フィールドが作成されます。

問題は、追加された「連絡先」フィールドの数を把握するのに苦労していることです。ボタンがクリックされたときに生成される 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>

ボタンがクリックされるたびに、name="member[0][lname]" は name="member[ 1 ][lname]" になり、ボタンがクリックされるたびに増加し続けます。前述のように、ユーザーはページ上で何度でもこれを行うことができます。

PHP を使用して、多次元配列をループ処理しています。

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

PHP を使用して追加されたファイルの数を確認し、それらをループできるようにするにはどうすればよいですか?

どんな助けでも大歓迎です!

4

1 に答える 1

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'];
    }
}
于 2012-12-04T03:54:54.800 に答える