Garder la selection d'une liste déroulante php

Résolu/Fermé
Baptiste0410 Messages postés 19 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 5 mai 2022 - Modifié le 21 mai 2021 à 17:40
jordane45 Messages postés 38263 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 octobre 2024 - 21 mai 2021 à 17:43
Bonjour,

Dans mon projet pour l'école je doit créer une page avec les différents capteurs qu'il y a sur une BDD. J'ai mis une liste déroulante mais quand je sélection un capteur autre que le capteur 1, la liste déroulantes reviens toujours sur le capteurs 1. Mais la requête et bien exécuter et je vois bien les bonnes informations. Comment fait pour garder la sélection d'un capteurs.
<?php
 // Initialiser la session
 session_start();
 // Vérifiez si l'utilisateur est connecté, sinon redirigez-le vers la page de connexion
 if(!isset($_SESSION["username"])){
  header("Location: login.php");
  exit(); 
 }
?>
<!DOCTYPE html>
<html>
 <head>
  <link href="style.css" rel="stylesheet" media="all"/>
 </head>
 <body>
  <div class="sucess">
  <h1>Bienvenue <?php echo $_SESSION['username']; ?>!</h1>
  <p>C'est votre espace utilisateur.</p>
  <a href="logout.php">Déconnexion</a>
  </div>
 
    <head><title>Liste des capteurs </title></head>
   
    
        <h1>Liste des capteurs : </h1>
 
  <form name="connexion" method="post">
   </br>
   </br>
   Choisir un capteur
   <select name="Capteur">
   <?php
   for ($i=1;$i<30;$i++)
   {
    echo "<option>capteur ".$i."</option>";
   }
  ?>
   </select>
   </br>
   </br>
    <input type="submit" name="valider" value="OK"/>
          <input type='submit' name='annuler' value='ANNULER'/>
   </br>
   </br>
        </form>
 
        <?php
 
  if (isset($_POST['valider']))
  {
 
  // on se connecte à MySQL et on sélectionne la base
        $conn = new mysqli('localhost', 'root', '', 'air_exterieur');
        if ($conn->connect_errno)
        {
            echo "Echec lors de la connexion à MySQL : " . $conn->connect_error;
        }
 
        // On créé la requête
 
  $nbBoitierChaine = substr ($_POST['Capteur'] ,8);
  //echo $nbBoitierChaine;
  $nbBoitier = intval($nbBoitierChaine);
 
  $req = "SELECT * FROM boitier_qae WHERE Num_boitiers=".$nbBoitier." ORDER BY Num_boitiers";
  //echo $req;
 
        // on envoie la requête
        $res = $conn->query($req);
 
        // on va scanner tous les tuples un par un
        echo "<table class='paleBlueRows' border=2 >";
 
  echo "<tr>
    <th>Numéro Boitier</th>
    <th>Date_Heure</th>
    <th>Mesure à 1 µm</th>
    <th>Mesure à 2,5 µm</th>
    <th>Mesure à 10 µm</th>
    <th>Description</th>
    <th>Lagitude</th>
    <th>Longitude</th>
   </tr>";
 
                while($data = mysqli_fetch_array($res))
        {
          // on affiche les résultats sous forme de tableau html
 
          echo "<tr>
          <td>".$data['Num_boitiers']."</td> 
    <td>".$data['Date_Heure']."</td>
    <td>".$data['PM1']."</td>
    <td>".$data['PM2_5']."</td>
    <td>".$data['PM10']."</td>
    <td>".$data['Description']."</td>
    <td>".$data['Latitude']."</td>
    <td>".$data['Longitude']."</td>";
          echo "</tr>" ;
 
        }
        echo "</table>";
 
        // on ferme la connexion
        $conn->close();
  }
        ?>
    </body>
</html>


EDIT : Ajout des balises de code.
Tutoriel disponible ici: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

1 réponse

jordane45 Messages postés 38263 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 28 octobre 2024 4 693
Modifié le 21 mai 2021 à 17:43
Bonjour,

Pour utiliser les balises de code, c'est par ici :
https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pour ta question
<?php
//récupération propre de la variable avant de l'utiliser
$capteur = !empty($_POST['Capteur']) ? $_POST['Capteur'] : NULL;

?>

   <select name="Capteur">
   <?php
   for ($i=1;$i<30;$i++)
   {
    $selected = "capteur".$i == $capteur  ? " selected ='selected'  " : "" ;
    echo "<option value='capteur".$i."' " . $selected . "  >capteur ".$i."</option>";
   }
  ?>



0