我创建了一个使用复选框的表单,方法设置为GET。
结果为example.com/careers/?career_type=val1&career_type=val2
<?= $_GET['career_type']; ?>
只显示val2。
是否可以同时显示两个值?
虽然具有相同名称的多个参数是完全有效的,但PHP不能很好地处理它。你有两个选择。
-
将URL更改为数组,例如
example.com/careers/?career_type[]=va1&career_type[]=val2
。然后,$_GET['career_type']
将作为包含val1和val2的数组返回。如果使用表单生成此URL,只需将字段命名为name="career_type[]"
-
如果不可能,您可以手动解析查询字符串。这将有相同的效果:
$query = explode('&', $_SERVER['QUERY_STRING']);
$params = [];
foreach ($query as $param) {
[$name, $value] = explode('=', $param, 2);
$params[urldecode($name)][] = urldecode($value);
}
var_dump($params['career_type']);