我有以下内容可以在表单上生成状态下拉列表:
$states = array('State', 'Alabama', 'Alaska', 'Arizona', 'Arkansas');
echo "<select name='choose_state'>\n";
foreach ($states as $key => $state)
{echo "<option value='$key'>$state</option>\n";}
echo "</select>";
我将如何确保用户
1) 只选择数组中的一个选项
2)不选择默认值? ([0]=> string(5) "状态")
编辑:在 php 中验证,这是用于在发布到数据库之前收集用户信息的表单
我尝试使用 in_array 并在尝试排除默认值时遇到困难
最佳答案
我认为您遗漏了一些支票。您永远不应该依赖确切发布的内容,并且始终执行彻底检查:
$chosen_state = null;
if (array_key_exists('choose_state', $_POST))
{
$choose_state = $_POST['choose_state'];
if (array_key_exists($choose_state, $states) && $choose_state > 0)
{
// Value does actually exist in array and is not item 0.
$chosen_state = $states[$chose_state]);
}
}
关于php - 在 PHP 中验证选择下拉数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6234388/