-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 に答える