所以我有一个无法解决的问题,我确信我做错了一些简单的事情,但我仍然找不到错误,我有一个带有 2 个选项元素的 html 选择元素,选择设置为多个选项和两个选项设置为选中,您所要做的就是单击应用按钮并查看结果。
所以我的问题是,当您运行此场景并对过滤器输入进行变量转储时,它返回 false(无数据),但是当您变量转储 $_POST 全局变量时,它具有我正在寻找的数据,知道我是什么我做错了。
这是代码:
$submit = filter_input(INPUT_POST, 'submit', FILTER_SANITIZE_SPECIAL_CHARS);
if(!isset($submit)){
?>
<form action="" method="post">
<select name="partsused[]" id="usedparts" multiple>
<option value="empty" selected>Empty</option>
<option value="full" selected>Full</option>
</select>
<br/>
<button type="submit" name="submit" value="submit">Apply</button>
</form>
<?php
} else {
$someArray = filter_input(INPUT_POST, 'partsused');
var_dump($someArray);
var_dump($_POST['partsused']);
die;
}
我从 var_dump 得到的输出如下:
bool(false)
array(2) { [0]=> string(5) "empty" [1]=> string(4) "full" }
所以你可以看到 filter_input 根本没有从 $_POST 中读取值,我已经尝试了所有不同的过滤器,甚至根本没有过滤。
所以为了清楚起见,是的,将 S_POST['partsused'] 分配给变量 $someArray 确实有效,但我不喜欢这样做,我总是使用 filter_input,不知道为什么这样做,任何想法或需要。