web-dev-qa-db-fra.com

Obtenir les données de la liste déroulante et de la page de mise à jour

J'ai une simple page Web avec un menu déroulant avec quelques options. J'aimerais pouvoir obtenir la sélection de l'utilisateur, puis afficher la même sélection sur la page Web. C'est le code que j'ai jusqu'à présent.

\\Pretty standard code for getting the header and title and <\div> etc.
<select id="animal" name="animal">                      
  <option value="0">--Select Animal--</option>
  <option value="Cat">Cat</option>
  <option value="Dog">Dog</option>
  <option value="Cow">Cow</option>
</select>
<?php
if($_POST['submit'] && $_POST['submit'] != 0)
{
   $animal=$_POST['animal'];
    location.reload();
}
   print_r($animal);
?>
\\Pretty standard code for getting the footer etc.

La liste déroulante s'affiche correctement, comme indiqué ci-dessous. Il affiche toutes les options, mais lorsque je sélectionne une option, rien ne se passe. Ce que je veux faire est d’afficher la sélection "Cat" dans ce cas. (ça ne se passe pas pour le moment) .  enter image description here 

S'il vous plaît, guidez-moi, ce que je fais mal. J'espère finir par faire autre chose avec la liste déroulante. Mais si je peux réussir, je comprendrai comment récupérer les données et mettre à jour la page. Les prochaines étapes sont relativement faciles. En outre, ce morceau de code fait partie de mon fichier de modèle pour ma page. Je peux télécharger tout le code si nécessaire.

Mise à jour: Finalement, je veux faire quelque chose comme ça. Autrement dit, pour afficher les publications pertinentes en fonction des filtres sélectionnés par l'utilisateur, si cela vous aide.

2

Que dis-tu de ça:

<?php

$arr = ["Cat", "Dog", "Cow" ];


if( $_POST['animal']){
   $animal=$_POST['animal'];
   echo $animal;    

}


?>

<form name="f" id="a" method="post" action="">
<select id="animal" name="animal" onchange="this.form.submit()" >                      
  <option value="0">--Select Animal--</option>
  <?php

   foreach ($arr as $a){

    if($a == $animal){
        echo "<option value='{$a}' selected >$a</option>";
    }else{
        echo "<option value='{$a}' >$a</option>";
    }

   }

   ?>

</select>
</form>

Notez que vous pouvez aussi unset la variable à la fin mais le ramasse-miettes est également présent en PHP. Ce code suppose que vous utilisez au moins PHP 5.4+, sinon définissez le tableau via $arr = array("Cat", "Dog", "Cow" );

1
prosti