我有一个填充下拉菜单的数组。密钥是我的数据库密钥,值是相应的数据库值。我遇到的问题是,当我发布表单时,我得到的是POSTed数值而不是下拉列表中的字符串值。我可以查询数据库以获取字符串,但必须有更好的方法来执行此操作,因为我已经在数组中有两个值。我不能使用array_search,因为该数组是多维的。有人可以提供帮助吗?
由于
foreach($dd as $k=>$v)
{
echo'<option value="'.$v['ace_id'].'">'.$v['arua'].'</option>';
}
答案 0 :(得分:0)
HTML input
字段(还包括select
,textarea
和button
)仅将 name-value 对发送到服务器方(在name
和value
属性中指定)。他们不发送任何文字表示。
您事先已经知道服务器端的文本和标签(如何打印它们?),在请求参数中完全没有意义。
您可以通过多种方式解决这个“问题”:
value
属性中指定所需的值,而不是选项标签。 更新:这是一个基本示例(没有像isset
和htmlspecialchars
这样的整洁检查,但这取决于您):
$selected = $_POST['dropdownname'];
foreach ($options as $value => $label) {
echo '<option value="' . $value . '"' . ($value == $selected ? ' selected' : '') . '>' . $label . '</option>';
}
答案 1 :(得分:0)
如果您想要下拉列表中的文本名称而不是密钥,请将其放在value =“”部分中。如果你想要两者,那么把它们放在那里并用逗号分隔它们并在其上运行split()。