1

Laravel 5 を使用して、2 次元配列を入力として受け取る HTML フォームを開発しています。目的は、連絡担当者を保存することであり、各連絡担当者の入力フィールドは、JQuery によって動的に追加または削除できます。

インデックスを維持する必要がないように、空のブラケット [] を使用したいと思います。ということで、HTMLフォームの入力コードを2ケース試してみました。以下に簡単な例を示します。

ケース 1:

Person 1:
<input type="text" name="contacts[][surname]">
<input type="text" name="contacts[][first_name]">
<input type="checkbox" name="contacts[][VIP]">

Person 2:
<input type="text" name="contacts[][surname]">
<input type="text" name="contacts[][first_name]">
<input type="checkbox" name="contacts[][VIP]">

しかし、ダイダンプを使用してチェックした配列、つまり次の結果dd($request->input('contacts'));が返されました。

array:4 [
  0 => array:1 ["surname" => "Some Value" ]
  1 => array:1 ["first_name" => "Some Value" ]
  2 => array:1 ["surname" => "Some Value" ]
  3 => array:1 ["first_name" => "Some Value" ]
]

チェックされていない場合は何も返さないので、チェックボックスの入力は今のところ忘れましょう。そうは言っても、それが問題の原因である場合に備えて、ここに含めました。

ケース 2

Person 1:
<input type="text" name="contacts[surname][]">
<input type="text" name="contacts[first_name][]">
<input type="checkbox" name="contacts[VIP][]">

Person 2:
<input type="text" name="contacts[surname][]">
<input type="text" name="contacts[first_name][]">
<input type="checkbox" name="contacts[VIP][]">

ダイ ダンプ、つまりdd($request->input('contacts'));以下のように返されます。

array:2 [
  "surname" => array:2 [
    0 => "Some Value"
    1 => "Some Value"
  ]
  "first_name" => array:2 [
    0 => "Some Value"
    1 => "Some Value"
  ]
]

私が欲しいもの

これは私たちに質問をもたらします。これは私の望ましい結果です:

array:2 [
  0 => array:2 [
    "surname" => "Some Value"
    "first_name" => "Some Value"
  ]
  1 => array:2 [
    "surname" => "Some Value"
    "first_name" => "Some Value"
  ]
]

これを行う方法はありますか? はいの場合、どうすれば達成できますか? これは、インデックスを維持する必要があるということですか?

4

1 に答える 1

0

これを試して。

Person 1:
<input type="text" name="contacts[0][surname]">
<input type="text" name="contacts[0][first_name]">
<input type="checkbox" name="contacts[0][VIP]">

Person 2:
<input type="text" name="contacts[1][surname]">
<input type="text" name="contacts[1][first_name]">
<input type="checkbox" name="contacts[1][VIP]">
于 2015-06-23T18:36:46.797 に答える