获取选项字段的所有值并将其推送到数组中

时间:2013-09-20 19:11:40

标签: php arrays

假设我有一个照片上传系统,用户必须为每个专辑设置一个类别,以获得良好和干净的搜索功能的基础知识。但是如果用户现在正在改变这样的值:

<select>
    <option value="">Choose a Category</option>
    <option value="Holiday">Holiday</option>
</select>

到此:

<select>
    <option value="">Choose a Category</option>
    <option value="Holiday">Something Stupid</option>
</select>

将“愚蠢的东西”输入数据库。

这就是我必须进行服务器端检查的原因。但我不知道如何获取选项字段的所有正确值以将其与发布值进行比较。

所以我的首要考虑因素如下:

PHP:

// Get all values of the option fields

// Push all the values into an array

if (in_array('foo', $array)) {
    // foo is in the array
}

感谢您的帮助。

2 个答案:

答案 0 :(得分:1)

好的,所以我想我猜到了你想说的。

你不应该在list.php文件中硬编码标签,而是在那里有一个数组。这样,您既可以将其用于生成选择字段,也可以用于验证。但是,通常情况下,带有类别的数据库表更可取。

<强>路径/ list.php的

return array(
    '1' => 'Name of Ctg 1',
    '2' => 'Name of Ctg 2'
);

在此处生成选择

<select name="whatever">
<?php

$options = include('path/list.php');

foreach($options as $id => $name) {
    echo '<option value="' . $id . '">' . $name . '</option>';
}

?>
</select>

以及如何在“目标”页面验证它

$options = include('path/list.php');
if(!array_key_exists( $valueFromUser, $options ) ) {
    // invalid option
} 

答案 1 :(得分:-1)

当从包含select标签的页面发布数据时,如果你在catcher php页面中运行这个php,它将在$ _REQUEST数组中:

foreach ($_REQUEST AS $key => $value) echo "$key = $value <br>";

您将看到list.php的结果。