我有两种输入类型。我有4个选择框和4个带有隐藏字段的复选框。复选框与选择框具有相同的名称。提交后,我这样做:
var_dump(Input::get(checkboxname));
var_dump(Input::get(selectboxname));
哪个输出:
array(4) {
[1]=> string(5) "value"
[2]=> string(5) "value"
[3]=> string(5) "value"
[4]=> string(5) "value"
}
array(4) {
[0]=> string(5) "value"
[1]=> string(5) "value"
[2]=> string(5) "value"
[3]=> string(5) "value"
}
这是我的选择框:
<select name="selectboxname[]" >
//values in a complicated for loop that's not important but it works
</select>
这是我的复选框:
<input type='hidden' value='othervalue' name='checkboxname[]'>
<input type="checkbox" name="checkboxname[]" value="value">
在数组中,复选框的索引如下:1,2,3,4,选择框的索引为0,1,2,3。我必须使索引相互匹配。我知道通常索引从0开始,所以选择框做得很好。这里出了什么问题?
如果您想从零开始重新索引数组,只需执行以下操作:
array_values(Input::get('checkboxname'));
<input type='hidden' value='othervalue' name='checkboxname[]'>
<input type="checkbox" name="checkboxname[]" value="value">
似乎type='hidden'变成了checkboxname[0]。
如果您想要未检查的值,也许您应该在名称中使用数字:
<input type='hidden' value='othervalue' name='checkboxname[0]'>
<input type="checkbox" name="checkboxname[0]" value="value">
<input type='hidden' value='othervalue' name='checkboxname[1]'>
<input type="checkbox" name="checkboxname[1]" value="value">
我的猜测是,它与laravel如何处理输入($_POST或$_GET)有关
对您正在使用的(POST或GET)执行var_dump,然后参阅。直接从$_数组访问值可能更好。
尝试array_values来重新索引您的数组
<?php
$array = array("size" => "XL", "color" => "gold");
print_r(array_values($array));
?>
输出:
Array
(
[0] => XL
[1] => gold
)