Utilisation de $ _POST pour obtenir la valeur de l'option sélectionnée à partir de HTML

128

J'utilise selectcomme ci-dessous:

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

Comment obtenir la valeur de l' selectoption et la stocker dans une variable pour une utilisation future, en PHP?

Felicia Tan
la source
tizag.com/phpT/postget.php
Arun Unnikrishnan
2
Regarde ça . À l'avenir, veuillez effectuer une recherche rapide sur SO avant de publier.
kgdesouz

Réponses:

203

Utilisez de cette façon:

$selectOption = $_POST['taskOption'];

Mais il est toujours préférable de donner des valeurs à vos <option>balises.

<select name="taskOption">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
</select>
Praveen Kumar Purushothaman
la source
Pourquoi est-il toujours préférable de donner des valeurs à vos <option>tags? " Si aucun attribut de valeur n'est inclus, la valeur par défaut correspond au texte contenu dans l'élément ". Si cela fonctionne, qu'est-ce qui ne va pas avec ça?
osullic
3
@osullic D'accord, mais je suppose qu'il y a 5 ans, quelques navigateurs ne le faisaient pas.
Praveen Kumar Purushothaman
28

Vous pouvez accéder aux valeurs du $_POSTtableau par leur clé. $ _POST est un tableau associatif, taskOptionvous utiliserez donc pour y accéder $_POST['taskOption'];.

Assurez-vous de vérifier s'il existe dans le tableau $ _POST avant de continuer.

<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; 
   }
Ryan
la source
14

Vous pouvez aussi le faire comme ceci:

<?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>
Dan Costinel
la source
11
<select name="taskOption">
      <option value="first">First</option>
      <option value="second">Second</option>
      <option value="third">Third</option>
</select>

$var = $_POST['taskOption'];
Jeroen Vannevel
la source
3

Cela dépend si le formulaire dans lequel la sélection est contenue a la méthode définie sur "get" ou "post".

Si <form method="get">alors la valeur de la sélection sera située dans le tableau super global $_GET['taskOption'].

Si <form method="post">alors la valeur de la sélection sera située dans le tableau super global $_POST['taskOption'].

Pour le stocker dans une variable, vous devez:

$option = $_POST['taskOption']

Un bon endroit pour plus d'informations serait le manuel PHP: http://php.net/manual/en/tutorial.forms.php

user2465080
la source
2

Comme ça:

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

L'index du $_POSTtableau est toujours basé sur la valeur de l' nameattribut de toute entrée HTML.

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

essaye ça

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


- fichier 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>

- fichier php -

$city = (isset($_POST['city']) ? $_POST['city']: null);
print("city is: ".$city[0]);
Chanceux
la source