2017-08-30 7 views
0

紛らわしければ、そのタイトルについては申し訳ありませんが、私の質問を説明するために最善を尽くしました。グループに属する入力の書式設定方法

私は同じエンティティの一部であるため、一緒にグループ化したいフォームの入力がいくつかあります。

ブラケットを使用することで、(PHPで)1つの配列に入れられるようになっています。たとえば、チェックボックスを使用すると、私の状況は少し異なります。

personの3つの入力があり、その形式ではpeopleが複数ある可能性があります。

これは私だけの形で一人を持っているとしたら、それは次のようになります。

<input type="text" name="first_name"/> 
<input type="text" name="last_name"/> 
<input type="text" name="email"/> 

しかし、私は複数のpeopleを可能にする必要があり、私はそれらすべてが一つに通ってくるしたいと思いますこのようなPHPの配列は、:

// print_r($_POST['people']); 
array(
    [0] => array(
     'first_name'=>'john' 
     'last_name' => 'smith' 
     'email'=>'[email protected]' 
    ) 
    [1] => array(
     'first_name'=>'john2' 
     'last_name' => 'smith2' 
     'email'=>'[email protected]' 
    ) 
) 

I(1)試みた:

<input type="text" name="people[][first_name]"/> 
<input type="text" name="people[][last_name]"/> 
<input type="text" name="people[][email]"/> 

D I(2)試みた:

<input type="text" name="people[first_name][]"/> 
<input type="text" name="people[last_name][]"/> 
<input type="text" name="people[email][]"/> 

及びIは、(3)試みた:上記の

<input type="text" name="people[][first_name][]"/> 
<input type="text" name="people[][last_name][]"/> 
<input type="text" name="people[][email][]"/> 

なしIは、さらに上記構成に貫通来ていません。

$_POST['people']を上記の配列のように見えるようにするにはどうすればよいですか?

EDIT:

Array 
(
[0] => Array 
    (
     [first_name] => john 
    ) 

[1] => Array 
    (
     [last_name] => smith 
    ) 

[2] => Array 
    (
     [email] => [email protected] 
    ) 

[3] => Array 
    (
     [first_name] => john2 
    ) 

[4] => Array 
    (
     [last_name] => smith2 
    ) 

[5] => Array 
    (
     [email] => [email protected] 
    ) 

) 

ありがとう:ここ

は、(1)を生成するものです。

+0

バリアント番号1の問題は何ですか? –

+0

@u_mulder私は、変種1がどのようなものを生成するかを質問するように更新しました( 'print_r'-ing' $ _POST ['people'] ') –

答えて

1

明示的にアイテムをグループ化するためのインデックスを設定する必要があります。あなたのケースでは、それは次のようになります。

<form method="POST" action=""> 
    <input type="text" name="people[0][first_name]"/> 
    <input type="text" name="people[0][last_name]"/> 
    <input type="text" name="people[0][email]"/> 
    <hr /> 

    <input type="text" name="people[1][first_name]"/> 
    <input type="text" name="people[1][last_name]"/> 
    <input type="text" name="people[1][email]"/> 
    <hr /> 

    <input type="text" name="people[2][first_name]"/> 
    <input type="text" name="people[2][last_name]"/> 
    <input type="text" name="people[2][email]"/> 
    <hr /> 

    <input type="submit" name="" value="" /> 
</form> 

また、新しいフィールドを追加するJavaScriptの場合には、それらの名前が明示的なインデックスを次のようになります。

name="people[4][email]" 
name="people[5][email]" 
<!-- etc --> 
関連する問題