我使用以下函数来表示干净的表单数据。
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return htmlspecialchars($str);
}
它给出以下字段的空数组。
$value = clean($_POST['tags_id'];
并且在删除clean()函数后,它会给出所有选定的值(表示没有空数组)
<select name="tags_id[]" multiple="multiple" data-rel="chosen" style="width: 220px">
<option value="1">value1</option>
<option value="2">value2</option>
<option value="3">value3</option>
</select>
答案 0 :(得分:4)
您可以尝试这样
if(isset($_POST['submit']))
{
foreach($_POST['tags_id'] as $key=>$val)
{
echo "val".clean($val); // Here you will get clean values
}
}
function clean($str) {
$str = @trim($str);
if(get_magic_quotes_gpc()) {
$str = stripslashes($str);
}
return htmlspecialchars($str);
}
答案 1 :(得分:1)
如果你看一下你的表格:
<select name="tags_id[]" multiple=...
^^ here
您会看到tags_id
是一个数组,因此$_POST['tags_id']
是一个数组。
你不能在你的数组上使用字符串函数,你必须遍历数组的元素并在那些函数上调用clean()
函数。在这里查看在数组上使用trim()
时会发生什么:example。
如果值是数组并且相应地处理它,您也可以签入函数。