Extraire une chaine de caractère pour la mettre dans une liste déroulante [Résolu]

Signaler
-
 Darkoos04 -
Bonjour,

Je souhaite extraire une chaine de caractère pour la mettre ensuite dans une liste déroulante.
Enfaite je voudrais que la liste déroulante s'adapte en fonction des données de la BDD.

Voici mon code:
<html>
    <head><title>Liste des capteurs </title></head>
    <link href="css/" rel="stylesheet" media="all" type="text/css"/>
    <body>
        <h1>Liste des capteurs : </h1>
  
  <form name="connexion" method="post">
   </br>
   </br>
   Choisir un capteur
   <select name="Capteur">
   <option>capteur 1</option>
   <option>capteur 2</option>
   <option>capteur 3</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
  $string = 'capteur 1';
   echo $string[9];                                  
    
  while ($rest = substr("capteur 1", 9))
  {
  $req = "SELECT * FROM boitier_qae WHERE Num_boitiers ORDER BY Num_boitiers";
  }
  if ($_POST['Capteur'] == "capteur 1" )
  {
  $req = "SELECT * FROM boitier_qae WHERE Num_boitiers=1 ORDER BY Num_boitiers";
  }
  else 
        $req = "SELECT * FROM boitier_qae ORDER BY Num_boitiers";
  if ($_POST['Capteur'] == "capteur 2" )
  {
  $req = "SELECT * FROM boitier_qae WHERE Num_boitiers=2 ORDER BY Num_boitiers";
  }
  else 
        $req = "SELECT * FROM boitier_qae ORDER BY Num_boitiers";
  
        // on envoie la requête
        $res = $conn->query($req);

        // on va scanner tous les tuples un par un
        echo "<table class='paleBlueRows' >";
                while($data = mysqli_fetch_array($res))
        {
          // on affiche les résultats
          echo "<tr>
          <td>".$data['Num_boitiers']."</td> 
    <td>".$data['Date_Heure']."</td>
          <td>".$data['PM0_3']."</td>
    <td>".$data['PM0_5']."</td>
    <td>".$data['PM1']."</td>
    <td>".$data['PM2_5']."</td>
    <td>".$data['PM5']."</td>
    <td>".$data['PM10']."</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

Merci d'avance pour vos réponse

Baptiste

3 réponses

Messages postés
31514
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 février 2021
3 284
Bonjour,


Je souhaite extraire une chaine de caractère
</bock>
L'extraire d'où ? .. de l'envoi de ton form ?
Donc.. les données qui se trouvent dans la variable $_POST ?

Que penses tu faire (ou crois tu faire...) avec ce code :
$rest = substr("capteur 1", 9)


<block>
pour la mettre ensuite dans une liste déroulante.

De quelle liste déroulante s'agit il ?
Qu'as tu commencé à faire pour la remplir ?


NB:
Pour poster du code sur le forum, penses à utiliser les BALISES DE CODE.
Explications ( à lire entièrement !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Ensuite, je t'invite également à lire ( et à appliquer ) les conseils donnés ici :
https://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Reviens nous voir avec le code modifié et en expliquant un peu plus clairement ce que tu souhaites réaliser et sur quoi tu bloques.



Je veut faire une liste déroulantes adaptatif, les données que je vais chercher sont sur une BDD héberger sur phpmyadmin. Si possible éviter le javascript car je suis pas trop à l'aise avec.
Messages postés
31514
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
27 février 2021
3 284
Tu veux que ta liste se mette à jour en fonction de quoi ?
Tu veux qu'elle se mette à jour à partir de quand ( clique sur un bouton ? modification d'une valeur quelque part ? autre ?? )
Où se trouve le code html de la liste concernée ?
Quelles données veux tu y mettre ?
La liste doit ce mettre a jour en fonction de la BDD.
Par exemple qu'elle se mettent a jour toute les 5s
j'ai créer un formulaire :
<html>
<link href="css/style.css" rel="stylesheet" media="all" type="text/css">
<head><title>Qualité de l'air exterieur</title></head>
<body>
<h1>Qualité de l'air exterieur</h1>
<form name="connexion" method="post" action="traite_formulaire.php">

Identifiant : <input type="text" name="IDENTIFIANT" placeholder="Entrez votre Identifiant"/> <br/>
Mot de passe : <input type="text" name="MOTDEPASSE" placeholder="Entrez votre Mot de passe"/> <br/>
</br>
<input type="submit" name="valider" value="OK"/>
</br>
</br>
<input type="submit" name="creercompte" value="CREATION COMPTE"/>

</form>

</body>
</html>

et voila le deuxième fichier
<html>
<head><title>Liste des capteurs </title></head>
<link href="css/" rel="stylesheet" media="all" type="text/css"/>
<body>
<h1>Liste des capteurs : </h1>

<form name="connexion" method="post">
</br>
</br>
Choisir un capteur
<select name="Capteur">
<option>capteur 1</option>
<option>capteur 2</option>
<option>capteur 3</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
$string = 'capteur 1';
echo $string[9];

while ($rest = substr("capteur 1", 9))
{
$req = "SELECT * FROM boitier_qae WHERE Num_boitiers ORDER BY Num_boitiers";
}
if ($_POST['Capteur'] == "capteur 1" )
{
$req = "SELECT * FROM boitier_qae WHERE Num_boitiers=1 ORDER BY Num_boitiers";
}
else
$req = "SELECT * FROM boitier_qae ORDER BY Num_boitiers";
if ($_POST['Capteur'] == "capteur 2" )
{
$req = "SELECT * FROM boitier_qae WHERE Num_boitiers=2 ORDER BY Num_boitiers";
}
else
$req = "SELECT * FROM boitier_qae ORDER BY Num_boitiers";

// on envoie la requête
$res = $conn->query($req);

// on va scanner tous les tuples un par un
echo "<table class='paleBlueRows' >";
while($data = mysqli_fetch_array($res))
{
// on affiche les résultats
echo "<tr>
<td>".$data['Num_boitiers']."</td>
<td>".$data['Date_Heure']."</td>
<td>".$data['PM0_3']."</td>
<td>".$data['PM0_5']."</td>
<td>".$data['PM1']."</td>
<td>".$data['PM2_5']."</td>
<td>".$data['PM5']."</td>
<td>".$data['PM10']."</td>
<td>".$data['Latitude']."</td>
<td>".$data['Longitude']."</td>";
echo "</tr>" ;

}
echo "</table>";

// on ferme la connexion
$conn->close();
}
?>
</body>
</html>

Tkt pas c'est bon j'ai réussi autrement