Garder la selection d'une liste déroulante php

Résolu
Baptiste0410 Messages postés 19 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
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
A voir également:

1 réponse

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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