web-dev-qa-db-fra.com

Comment sélectionner une liste déroulante html avec php?

J'essaie d'obtenir l'option sélectionnée avec PHP, mais je suis à court d'idées!

Voici le code que j'ai essayé jusqu'à présent:

<select>
<option value="1">Yes</options>
<option value="2">No</options>
<option value="3">Fine</options>
</select>
<input type="text" value="" name="name">
<input type="submit" value="go" name="go">

Alors, que dois-je faire?

6
artur

Les programmeurs sont paresseux ... euh ... efficaces .... je le ferais comme suit:

<select><?php
    $the_key = 1; // or whatever you want
    foreach(array(
        1 => 'Yes',
        2 => 'No',
        3 => 'Fine',
    ) as $key => $val){
        ?><option value="<?php echo $key; ?>"<?php
            if($key==$the_key)echo ' selected="selected"';
        ?>><?php echo $val; ?></option><?php
    }
?></select>
<input type="text" value="" name="name">
<input type="submit" value="go" name="go">
12
Christian
<select>
<option value="1" <?php if ($myVar==1) echo 'selected="selected"';?>>Yes</options>
<option value="2" <?php if ($myVar==2) echo 'selected="selected"';?>>No</options>
<option value="3" <?php if ($myVar==3) echo 'selected="selected"';?>>Fine</options>
</select>
<input type="text" value="" name="name">
<input type="submit" value="go" name="go">

C'est une façon très simple et directe, si j'ai bien compris votre question.

6
Bart

vous pouvez utiliser cela .. 

<select name="select_name">
    <option value="1"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='1')?' selected="selected"':'');?>>Yes</option>
    <option value="2"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='2')?' selected="selected"':'');?>>No</option>
    <option value="3"<?php echo(isset($_POST['select_name'])&&($_POST['select_name']=='3')?' selected="selected"':'');?>>Fine</option>
</select>
5
bernte

Tout d'abord, donnez un nom à votre choix. Alors fais:

<select name="my_select">
<option value="1" <?= ($_POST['my_select'] == "1")? "selected":"";?>>Yes</options>
<option value="2" <?= ($_POST['my_select'] == "2")? "selected":"";?>>No</options>
<option value="3" <?= ($_POST['my_select'] == "3")? "selected":"";?>>Fine</options>
</select>

Ce que cela fait est de vérifier si ce qui a été sélectionné est le même pour chacun et quand son trouvé écho "sélectionné".

2
Iznogood

Je suppose que vous utilisez un tableau pour créer votre entrée de formulaire select. Dans ce cas, utilisez un tableau:

<?php
    $selected = array( $_REQUEST['yesnofine'] => 'selected="selected"' );
    $fields = array(1 => 'Yes', 2 => 'No', 3 => 'Fine');
 ?>
  <select name=‘yesnofine'>
 <?php foreach ($fields as $k => $v): ?>
  <option value="<?php echo $k;?>" <?php @print($selected[$k]);?>><?php echo $v;?></options>
 <?php endforeach; ?>
 </select>

Sinon, vous pouvez simplement dérouler la boucle ci-dessus et continuer à utiliser un tableau.

 <option value="1" <?php @print($selected[$k]);?>>Yes</options>
 <option value="2" <?php @print($selected[$k]);?>>No</options>
 <option value="3" <?php @print($selected[$k]);?>>Fine</options>

Notes que je ne connais pas:

  • comment vous nommez votre entrée, alors je lui ai donné un nom. 
  • de quelle manière vous gérez votre entrée de formulaire côté serveur, j’ai utilisé $_REQUEST

Le cas échéant, vous devrez adapter le code aux exigences de la structure que vous utilisez.

En outre, dans de nombreux frameworks, il est habituel d'utiliser des scripts dédiés la syntaxe alternative in view.

0
didierc

J'utilise inline si

($_POST['category'] == $data['id'] ? 'selected="selected"' : false)
0
Maarten de Graaf

J'ai 2 fichiers php et j'ai fait cela, et cela fonctionne. (Ceci est un exemple) le premier code provient d'un fichier et le second code de deux fichiers.

<form action="two.php" method="post">
<input type="submit" class="button" value="submit" name="one"/>
<select name="numbers">
<option value="1"> 1 </option>
<option value="2"> 2 </option>
<option value="3"> 3 </option>
</select>
</form>



if(isset ($_POST['one']))
{

if($_POST['numbers']=='1')
{
$a='1' ;
}
else if($_POST['numbers']=='2')
{
$a='2' ;
{
else if ($_POST['numbers']=='3')
{
$a='3' ;
}

}
0
marouska