Garder la selection d'une liste déroulante php

Résolu/Fermé
Baptiste0410
Messages postés
21
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
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
- 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
35830
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
6 juillet 2022
4 206
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>";
   }
  ?>



.
Cordialement,
Jordane
0