我有一个在另一个文件中生成的下拉菜单,我想回显他们从下拉菜单中选择的项目的名称而不是它的值(0,1,2,3 ...)。
以下是在另一个文件中生成的下拉菜单的代码:
<?php
$selectedKey = $_GET['selected_key'];
$query = "SELECT * FROM `1 selected` WHERE Key = '".$selectedKey."'";
$run = mysql_query($query);
$id1 = 0;
while( $row = mysql_fetch_assoc( $run ) ) {
echo "<option value='".$id1."'>".$row['Contract']."</option>";
$id1++;
}
?>
这就是它在index.php中的样子:
<select id="text2" name="text2">
</select>
现在,在他们提交数据之后,我想要回显他们选择的项目的名称,但是当我使用echo $_REQUEST['text2'];
时,我得到了数字(值),但正如我所说的那样,我希望获得名称。
答案 0 :(得分:2)
选择框将仅将其选定的值索引发送到服务器,而不是您看到的值。因此,只需使用$row['Contract']
作为要发送到服务器的值:
echo "<option value='".$row['Contract']."'>".$row['Contract']."</option>";
答案 1 :(得分:1)
问题是浏览器不向服务器提交显示文本,只提供值。但有几种解决方法:
选项1
将值设置为显示文本而不是$id1
。该值不必与显示文本不同。
选项2
在值中使用分隔符并设置值和显示文本:
echo "<option value='".$id1. ';' . $row['Contract'] ."'>".$row['Contract']."</option>";
在分隔符上爆炸以获取两者:
list($value, $text) = explode(';', $_POST['text2']);
选项3
使用Javascript,将表单的onsubmit
事件设置为使用显示文本填充隐藏输入的函数。