2017-07-04 8 views
0

私は、int値に従ってフォームをクローンするためにjavascriptを使用しています。私は[]ブラケットを使用して、他の入力タイプから配列値を取得しています。ラジオ入力で配列の値を取得する

<input type="text" name="state[]" class="form-control" id="state" required> 

ラジオ入力に使用します。

<input type="radio" name="gender[]" value="Male">Male 

これらのデータをdbに保存するには、サーバ側のループを使用します。

for ($i = 0; $i <= $request->limit; $i++) { 
    $user->name = $request->name[$i]; 
    $user->gender = $request->gender[$i]; 
    $user->address = $request->address[$i]; 
    $user->save(); 
} 

私はライン上のUndefined offset: 1のエラーを取得しています:ラジオ入力がアレイ状にデータを保持することはできませんのでとして

$user->gender = $request->gender[$i]; 

。私がダンプしてリクエストすると、ラジオを除くすべての入力に配列形式のデータがあります。そして、無線入力の値は、クローン形式の次の無線入力の値によって引き継がれます。

ラジオ入力からどのように配列値を取得できますか?

+0

あなたのラジオは、必須の属性またはチェックされた属性を持っていないようです。したがって、ユーザーは空白のままにすることができます。あなたはその行の結果を得られません。 – colburton

+0

'$ request-> limit'とは何ですか? –

+0

$ request-> limitはおそらく数または結果を数えている可能性があります。たとえば、遠くに行くと、$ i = 0のfor()ループのために2つの結果が出る可能性があります。 '$($ i = 0; $ i < $request-> limit; $ i ++){' –

答えて

0

すべてのラジオボタンの名前がgender[]の場合、それらはすべて同じグループにあり、すべてのフォームクローンの中から1つのオプションしか選択できないという問題があります。

ので、例えば、フォームは次のように見える場合:私はそれを埋めると、最初の名前欄に「ジョン」を配置し、最初の二つのボタンから「男性」を選択しようとした場合

<form> 
<input type="text" name="name[]" required> 
<input type="radio" name="gender[]" value="Male">Male 
<input type="radio" name="gender[]" value="Female">Female 
<input type="text" name="name[]" required> 
<input type="radio" name="gender[]" value="Male">Male 
<input type="radio" name="gender[]" value="Female">Female 
</form> 

2番目の名前フィールドに「結婚」と入力し、最後の2つのボタンから「女性」を選択すると、最初のセットの「男性」が消えます。ブラウザはすべてのラジオボタンを同じグループとして見ます。同じ名前。

ラジオボタンを<select>個のボックスに置き換えることをお勧めします。

関連する問題