我有项目列表,在选择它们并按下提交按钮后,在网址栏中有一种查询:
adrese-id=7&food-id=1&food-id=2&food-id=3&food-id=4
试图获取阵列中的所有食物ID,但到目前为止没有运气,尝试做:
$ids = $_GET['food-id'];
但那只是最后一个值,即4 ...
如何在数组中获取这些值?
您必须为您的字段命名,以表明它是一个“数组”。所以,而不是food-id
,在最后添加括号使其成为food-id[]
例如:
<input type="checkbox" name="food-id[]" value="1"> Pizza
<input type="checkbox" name="food-id[]" value="2"> Cheese
<input type="checkbox" name="food-id[]" value="3"> Pepperonis
在PHP中访问它将是相同的,$_GET['food-id']
(但这次它将是一个数组)。
在php中,$_GET
数组有$key => $value
对。在这种情况下,'food-id'是$key
。因为你的所有值(1,2,3,4)具有相同的键:'food-id',所以数组如下所示:
$_GET = [
'food-id' => 1,
'food-id' => 2,
'food-id' => 3,
'food-id' => 4,
]
这将始终使用正在使用的最后一个$key => $value
对进行解析:
$_GET = [
'food-id' => 4
]
解决方案始终使用阵列中的唯一键。
您确实需要提供生成值的HTML片段。但是,如果你查看你的GET请求,food-id的值不会被提交为一个数组,这可能是你想要的。您的GET请求应该更像:
adrese-id=7&food-id[]=1&food-id[]=2&food-id[]=3&food-id[]=4
这应该可以为您提供有关如何命名HTML表单值的线索。