我在laravel中有一个表单,将多个复选框组合在一起,供用户选择游戏统计信息。在提交时,即使没有选择任何框,表单也会向服务器发送一个值,这是奇怪的。
Laravel:
@for ($i = 1; $i < count($data['stats']); $i++)
<input tabindex="1" type="checkbox" name="stats[]" id="{{ $data['stats'][$i]->Field }}" value="{{ $data['stats'][$i]->Field }}"> {{ $data['stats'][$i]->Field }}<br>
@if ($i == 11)
</div>
<div class="col-sm-6">
@endif
@endfor
</div>
</div>
哪个生成此HTML:
<div class="row">
<div class="col-sm-6">
<input tabindex="1" type="checkbox" name="stats[]" id="Prestige" value="Prestige"> Prestige<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Level" value="Level"> Level<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Experience" value="Experience"> Experience<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Points" value="Points"> Points<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Kills" value="Kills"> Kills<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Deaths" value="Deaths"> Deaths<br>
<input tabindex="1" type="checkbox" name="stats[]" id="TeamWins" value="TeamWins"> TeamWins<br>
<input tabindex="1" type="checkbox" name="stats[]" id="TeamLosses" value="TeamLosses"> TeamLosses<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Bonus" value="Bonus"> Bonus<br>
<input tabindex="1" type="checkbox" name="stats[]" id="AchievementScore" value="AchievementScore"> AchievementScore<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Demented" value="Demented"> Demented<br>
</div>
<div class="col-sm-6">
<input tabindex="1" type="checkbox" name="stats[]" id="Volatile" value="Volatile"> Volatile<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Undead" value="Undead"> Undead<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Scavenger" value="Scavenger"> Scavenger<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Divinity" value="Divinity"> Divinity<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Withered" value="Withered"> Withered<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Killswitch" value="Killswitch"> Killswitch<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Precise" value="Precise"> Precise<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Adept" value="Adept"> Adept<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Utility" value="Utility"> Utility<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Class" value="Class"> Class<br>
<input tabindex="1" type="checkbox" name="stats[]" id="Perk" value="Perk"> Perk<br>
</div>
</div>
<button type="submit" class="btn btn-info btn-block" data-after="Updated Statistics|check" style="margin-top: 6px">Update Statistics</button>
</form>
</div>
在服务器端:
if(Input::has('stats')) {
$stats = Input::get('stats');
if(is_array($stats)) {
echo 'It is an array!';
print_r($stats);
} else { echo 'no'; }
}
$stats
始终返回Perk
,这是列表中的最后一个。有什么想法吗?
答案 0 :(得分:0)
这不是表单本身的问题,而是我提交表单的方式。我是ajaxing文件,从表单中提取的数据不是最有效的方式。