Garder la selection d'une liste déroulante php

Signaler
Messages postés
11
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
1 juin 2021
-
Messages postés
32982
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 juin 2021
-
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

Messages postés
32982
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
17 juin 2021
3 561
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