0

実際には2つのリストがあり、最初のリストは私のソースであり、ユーザーは選択した値を2番目のリストに追加します。だから私はすべての値の2番目のリストを取得するつもりです:私のリストはここにあります:

<form method="post" action="a.php">
    <select name="ap" size="5" style="width:100px;">
       <option>op1</option>
       <option>op2</option>
       <option>op3</option>
       <option>op4</option>
       <option>op5</option>
    </select>
<input type="submit" />

</form>

$_POST と $_REQUEST を使用できることを調査したところ、このように両方を使用しましたが、結果が得られない理由がわかりません: 次のコードは何も出力しません:

  <?php
     echo $_REQUEST['ap'];
  ?>

次のコードも使用しますが、結果は得られません。

<?php
    foreach( $_REQUEST['ap'] as $key=>$val)
    {
        echo $val;
    }
?>

しかし、警告メッセージで警告: foreach() に無効な引数が提供されました。

これも試してみましたが、上記と同じ警告が表示されました。

foreach( $_REQUEST['ap'] as $key)
{
    echo $key;
}
4

3 に答える 3

0

フォームは、選択したオプションのみを送信します。

あなたは、ユーザーが何らかの方法でこのリストに値を追加できると言います。これはJavaScriptを使用していると思います(ただし、フォーム送信ボタンとPHPを使用した場合も同じ原則が適用されます)。

リストに値を追加するコードを変更する必要があります。表示リストに入力するだけでなく、目的の情報を提供する非表示リストに入力することもできます。

のように、非表示の入力を作成してみ<input type="hidden" name="ap_all[]" value="op1">ます。

(これは、最後の値だけを使用するのではなく、すべての値から[]構築するように PHP に指示します)。$_POST['ap_all']

于 2013-07-09T20:49:18.417 に答える
0

次のように、タグに値を割り当てる必要があります。

<option value="test">Test</option>

次に、PHPでそれを取得できます。

于 2013-07-09T19:03:39.840 に答える
0

オプションには値が必要です。値がサーバーに送信され、タグの値がユーザーに表示されます。開発者がユーザーにテキストを表示できるようにすることは区別されますが、ID などを送信します。

<form method="post" action="a.php">
    <select name="ap" size="5" style="width:100px;">
       <option value="op1">op1</option>
       <option value="op2">op2</option>
       ...
    </select>
<input type="submit" />

</form>
于 2013-07-09T19:03:51.567 に答える