输入类型在php验证中选择返回空数组

时间:2015-04-08 10:22:59

标签: php html validation drop-down-menu

我使用以下函数来表示干净的表单数据。

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>

2 个答案:

答案 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

如果值是数组并且相应地处理它,您也可以签入函数。