$ _POSTを使用してHTMLから選択オプションの値を取得する


128

私はselect以下のように使用します:

<select name="taskOption">
    <option>First</option>
    <option>Second</option>
    <option>Third</option>
</select>

selectPHPでオプションから値を取得し、将来使用するために変数に格納するにはどうすればよいですか?



2
参照してくださいこれを。今後は、投稿する前にSOで簡単に検索してください。
kgdesouz 2013年

回答:


203

この方法を使用します。

$selectOption = $_POST['taskOption'];

ただし、<option>タグに値を指定することをお勧めします。

<select name="taskOption">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
</select>

<option>タグに値を与える方が常に良いのはなぜですか?" value属性が含まれていない場合、値はデフォルトで要素内に含まれるテキストになります " 動作する場合、何が問題になっていますか?
-osullic

3
@osullic同意するが、私は5年前と思うが、いくつかのブラウザはそうしなかった。
Praveen Kumar Purushothaman

28

$_POSTキーを使用して配列の値にアクセスできます。$ _POSTは連想配列なので、アクセスtaskOptionするにはを使用します$_POST['taskOption'];

続行する前に、$ _ POST配列に存在するかどうかを確認してください。

<form method="post" action="process.php">
  <select name="taskOption">
    <option value="first">First</option>
    <option value="second">Second</option>
    <option value="third">Third</option>
  </select>
  <input type="submit" value="Submit the form"/>
</form>

process.php

<?php
   $option = isset($_POST['taskOption']) ? $_POST['taskOption'] : false;
   if ($option) {
      echo htmlentities($_POST['taskOption'], ENT_QUOTES, "UTF-8");
   } else {
     echo "task option is required";
     exit; 
   }

14

次のようにすることもできます。

<?php
if(isset($_POST['select1'])){
    $select1 = $_POST['select1'];
    switch ($select1) {
        case 'value1':
            echo 'this is value1<br/>';
            break;
        case 'value2':
            echo 'value2<br/>';
            break;
        default:
            # code...
            break;
    }
}
?>


<form action="" method="post">
    <select name="select1">
        <option value="value1">Value 1</option>
        <option value="value2">Value 2</option>
    </select>
    <input type="submit" name="submit" value="Go"/>
</form>


3

選択が含まれているフォームのメソッドが「取得」または「投稿」に設定されているかどうかによって異なります。

その場合<form method="get">、selectの値はスーパーグローバル配列に配置され$_GET['taskOption']ます。

その場合<form method="post">、selectの値はスーパーグローバル配列に配置され$_POST['taskOption']ます。

それを変数に格納するには、次のようにします。

$option = $_POST['taskOption']

詳細については、PHPマニュアルを参照してください。http//php.net/manual/en/tutorial.forms.php


2

このような:

<?php
  $option = $_POST['taskOption'];
?>

$_POST配列のインデックスは、常にnameHTML入力の属性の値に基づいています。


1
<select name="taskOption">
<option value="1">First</option>
<option value="2">Second</option>
<option value="3">Third</option>
</select>

これを試して

<?php 
if(isset($_POST['button_name'])){
$var = $_POST['taskOption']
if($var == "1"){
echo"your data here";
}
}?>

1


-htmlファイル-

<select name='city[]'> 
                <option name='Kabul' value="Kabul" > Kabul </option>
                <option name='Herat' value='Herat' selected="selected">             Herat </option>
                <option name='Mazar' value='Mazar'>Mazar </option>
</select>

-phpファイル-

$city = (isset($_POST['city']) ? $_POST['city']: null);
print("city is: ".$city[0]);
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.