使用无线电输入获取数组值

时间:2017-07-04 17:23:50

标签: php html arrays forms laravel

我使用javascript根据int值克隆表单。我使用[]括号从其他输入类型中获取数组值。

<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];

因为无线电输入无法以数组形式保存数据。当我转储和死亡请求除了无线电以外的所有输入都有数组形式的数据。并且无线电输入的值由克隆形式的下一个无线电输入的值继承。

如何从无线电输入中获取数组值?

1 个答案:

答案 0 :(得分:0)

问题是,如果您的所有单选按钮都具有名称gender[],那么它们都在同一组中,您只能从所有表单克隆中选择一个选项。

因此,例如,如果您的表单如下所示:

<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>

如果我试着填写它并且放置&#34; John&#34;在名字字段中,然后选择&#34;男&#34;从前两个按钮,然后键入&#34; Marry&#34;在第二个名称字段中选择&#34;女性&#34;从最后两个按钮开始,&#34;男性&#34;第一组的选择将消失 - 因为浏览器将所有单选按钮视为同一组,因为它们具有相同的名称。

我建议用<select>框替换单选按钮。