-2

我有一个在另一个文件中生成的下拉菜单,我想回显他们从下拉菜单中选择的项目的名称,而不是它的值(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>

现在,在他们提交数据后,我想回显他们选择的项目的名称,但是当我使用回显时,$_REQUEST['text2'];我得到了数字(值),但正如我所说的,我想得到名称。

4

2 回答 2

2

选择框只会将其选定的值索引发送到服务器,而不是您看到的值。因此,只需将$row['Contract']其用作要发送到服务器的值:

echo "<option value='".$row['Contract']."'>".$row['Contract']."</option>";
于 2012-12-21T07:33:27.893 回答
1

问题是浏览器不向服务器提交显示文本,只提交值。不过有几种解决方法:

选项 1
将值设置为显示文本,而不是$id1。该值不必与显示文本不同。

选项 2
在值中使用分隔符并设置值和显示文本:

 echo "<option value='".$id1. ';' . $row['Contract'] ."'>".$row['Contract']."</option>";

在分隔符上展开以获得两者:

list($value, $text) = explode(';', $_POST['text2']);

选项 3
使用 Javascript,将表单的onsubmit事件设置为使用显示文本填充隐藏输入的函数。

于 2012-12-21T07:36:22.950 回答