8
votes

Comment présélectionner une liste déroulante HTML avec PHP?

J'essaie d'obtenir l'option sélectionnée à l'aide de PHP, mais j'ai manqué d'idées!

ci-dessous est le code que j'ai essayé jusqu'à présent: xxx donc , que dois-je faire?


0 commentaires

9 Réponses :


5
votes
<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">
This is a very simple and straightforward way, if I understand your question correctly.

4 commentaires

Je t'ai battu par une seconde monsieur!: P


@Iznogood Je pense que vous voulez dire que vous voulez dire l'inverse .. Mouseover Hyestamp's TimeestaStamp dit 17:14:48, tandis que sur la réponse de Bart, il est écrit 17:14:47 :)


Eh bien @Davinder, vous avez 5 ans de retard! :-)


Vous obtenez une variable non définie $ myvar erreur .....



2
votes

Tout d'abord, donnez un nom à votre sélection. Ensuite, faites:

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


0 commentaires

-1
votes

Cette réponse n'est pas pertinente pour un recul particulier, mais peut-être utile pour les autres. J'ai eu une question similiaire avec "sélection de" option "droite 'par valeur renvoyée à partir de la base de données. Je l'ai résolu en ajoutant une balise supplémentaire avec un affichage appliqué: Aucun.

<?php
$status =  "NOT_ON_LIST";

$text = "<html>
<head>
</head>
<body>
<select id=\"statuses\">
   <option value=\"status\" selected=\"selected\" style=\"display:none\">$status</option>
   <option value=\"status\">OK</option>
   <option value=\"status\">DOWN</option>
   <option value=\"status\">UNKNOWN</option>
</select>
</body>
</html>";

print $text;
?>


0 commentaires

15
votes

Les programmeurs sont paresseux ... er .... Efficace .... Je le ferais comme si: XXX


5 commentaires

Ceci est la seule solution qui répond à une sélection de dizaines ou de centaines d'options. +1


@Wes comment cela traite-t-il des centaines d'options ?? Vous auriez besoin de taper tous ceux qui sont dans le forach .......


@Yunfeichen Vous pouvez construire la gamme d'options dans un autre script en boucle via vos données, puis utilisez cette variable dans le forach ci-dessus.


@wes comment est-ce meilleur, vous auriez toujours besoin de taper toutes les options dans un tableau ???


@wes a toujours besoin de taper sur plusieurs centaines d'éléments ...... ne vois pas comment c'est mieux ??



0
votes

Je suppose que vous utilisez un tableau pour créer votre entrée code> formulaire. Dans ce cas, utilisez un tableau: xxx pré>

sinon, vous pouvez simplement dérouler la boucle ci-dessus et utiliser toujours un tableau. P>

 <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>
  • Comment vous nommez votre contribution, alors j'ai formulé un nom pour cela. li>
  • De quelle manière vous manipulez votre apport de formulaire sur le côté serveur, j'ai utilisé $ _ demande code>, li> ul>

    Vous devrez adapter le code aux exigences correspondant du cadre que vous utilisez, le cas échéant. p>

    aussi, il est coutumier dans de nombreux cadres d'utiliser La syntaxe alternative dans la vue des scripts dédiés. P> P>


0 commentaires

5
votes

Vous pouvez utiliser ceci ..

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


0 commentaires

0
votes

J'utilise Inline si

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


1 commentaires

Pour le compte rendu, "Inline Siest" est en fait connu comme "Opérateur ternaire".



0
votes

J'ai 2 fichiers PHP et j'ai fait cela, et cela fonctionne. (Ceci est un exemple) Le premier code provient du fichier unique et du deuxième code à partir 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 commentaires

-1
votes

C'est la solution que j'ai proposée: xxx

Le code que j'ai fonctionne aussi longtemps que les valeurs sont des entiers dans un ordre numérique (ascendant ou décroissant). Ce qu'il fait, c'est démarre la liste déroulante dans HTML et ajoute chaque élément d'option dans le code PHP. Cela ne fonctionnera pas si vous avez des valeurs aléatoires cependant, c'est-à-dire: 1, 4, 2, 7, 6. Chaque valeur doit être unique.


1 commentaires

Vous ne pouviez pas le rendre plus inefficace: 1. Vérification du $ _ POST ['Go'] Une seule fois, pas sur chaque itération de la boucle 2. Votre boucle ne prend pas en charge les modifications apportées dans la matrice, au moins utilisez compteur ($ Ar) pas un numéro codé dur. 3. PHP's PHP () LOOP gère automatiquement itération via un tableau et récupérant les touches et les valeurs - de sorte que vous ne devez donc pas avoir votre propre index d'incrément.