Probleme d'affichage liste deroulante php, html, mysql
Résolu
Mucci
Messages postés
5
Date d'inscription
Statut
Membre
Dernière intervention
-
bbcwatcher -
bbcwatcher -
Bonjour,
j'ai créé un formulaire avec deux champs à remplir sachant que l'un des champs est une liste déroulante à remplir avec des données que je récupère dans ma base de données mysql. Cependant, le problème c'est que la liste déroulante ne m'affiche rien
J'ai testé la variable qui récupère les données depuis la base et elle contient bien les données qu'il me faut. Je pense que c'est un problème d'affichage mais je ne sais pas où
Voici mon code
Merci d'avance
j'ai créé un formulaire avec deux champs à remplir sachant que l'un des champs est une liste déroulante à remplir avec des données que je récupère dans ma base de données mysql. Cependant, le problème c'est que la liste déroulante ne m'affiche rien
J'ai testé la variable qui récupère les données depuis la base et elle contient bien les données qu'il me faut. Je pense que c'est un problème d'affichage mais je ne sais pas où
Voici mon code
<head> <title>creation typeOpeation</title> </head> <body> <h2>Remplissage formulaire creation type operation</h2> <form action="creationTypeOperation.php" method="post" > <p>Nom type operation : <br /><input type="text" name="nouveautypeOper"/></p> <p> <SELECT name="domaine" id="domaine"> <?php// Connexion à la base de donnees C3P try { $bdd = new PDO('mysql:host=localhost;dbname=basec3p', 'root', ''); } catch(Exception $e) { die('Erreur : '.$e->getMessage()); } echo "Connection à la base de données reussie <br>"; $requete= "SELECT*FROM domaine"; $resultatReq=$bdd->query($requete); while($ligne=$resultatReq->fetch()) { echo '<option value="'.$ligne['domaine'];.'">'.$ligne['domaine'];.'</option>'; } $resultatReq->closeCursor(); ?> </SELECT> </p> <input name="valider" type="submit" value="Valider" /> </form> </body> </html>
Merci d'avance
A voir également:
- Probleme d'affichage liste deroulante php, html, mysql
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- Liste déroulante google sheet - Accueil - Guide bureautique
- Editeur html - Télécharger - HTML
- Liste code ascii - Guide
8 réponses
Merci de votre reponse.
enfait je l'ai corrigé mais j'ai toujours le meme soucis, rien ne s'affiche
enfait je l'ai corrigé mais j'ai toujours le meme soucis, rien ne s'affiche
while($ligne=$resultatReq->fetch()) { echo '<option value="'.$ligne['domaine'].'">'.$ligne['domaine'].'</option>'; } $resultatReq->closeCursor();
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
la requête est bonne ? (dans phpmyadmin)
on rentre dans la boucle ? (un bête echo "coucou"; dans la boucle)
on rentre dans la boucle ? (un bête echo "coucou"; dans la boucle)
Merci,
effectivement il ya un truc bizarre quand meme.
Quand je fais des echos à l'interieur de la balise <select>, il n'y a rien qui s'affiche (y compris à l'interieur de la boucle).
Cependant quand j'ecris du html par exemple si je met des valeurs bidons pour les option value, il me les met mais une seule fois (donc pas de boucle , peut etre ne prend pas en compte le php làbà ??)
Or si je ne m'abuse on peut ecrit le php partout dans le code.
La connexion à la base de donnees marche bien car avec la meme boucle et la meme requette mais à l'exterieur du formulaire quand j'effectue l'affichage , ça marche nickel !
J'ai vraiement besoin de votre aide car je galere depuis pas mal de temps avec ce probleme.
Merci d'avance.
effectivement il ya un truc bizarre quand meme.
Quand je fais des echos à l'interieur de la balise <select>, il n'y a rien qui s'affiche (y compris à l'interieur de la boucle).
Cependant quand j'ecris du html par exemple si je met des valeurs bidons pour les option value, il me les met mais une seule fois (donc pas de boucle , peut etre ne prend pas en compte le php làbà ??)
Or si je ne m'abuse on peut ecrit le php partout dans le code.
La connexion à la base de donnees marche bien car avec la meme boucle et la meme requette mais à l'exterieur du formulaire quand j'effectue l'affichage , ça marche nickel !
J'ai vraiement besoin de votre aide car je galere depuis pas mal de temps avec ce probleme.
Merci d'avance.
Apres tout apprenez à écrire des fonctions et non inserer des codes ici et là.
exemple
<html>
...
<body>
...
<select>
<?php echo getOptionList();?>
...
</html>
<?php
function getOptionList()
{
$result = "";
// codes PHP complexes
return $result;
}
exemple
<html>
...
<body>
...
<select>
<?php echo getOptionList();?>
...
</html>
<?php
function getOptionList()
{
$result = "";
// codes PHP complexes
return $result;
}
J'ai du nouveau !
En fait, j'ai essayé de mettre le SELECT apres la connexion à la base de données et puis j'ai changé la methode de connexion et l'acces à la base et çamarche nickel!
Quoi que c'est bizarre qu'il n'accêpte pas le PDO::fetch() directement car c'est la version la plus recente.
Il doit forcement exister quelque chose d'autre pour l'utiliser avec PDO::fetch().
voici le code
En fait, j'ai essayé de mettre le SELECT apres la connexion à la base de données et puis j'ai changé la methode de connexion et l'acces à la base et çamarche nickel!
Quoi que c'est bizarre qu'il n'accêpte pas le PDO::fetch() directement car c'est la version la plus recente.
Il doit forcement exister quelque chose d'autre pour l'utiliser avec PDO::fetch().
voici le code
<head> <title>creation typeOpeation</title> </head> <body> <h2>Remplissage formulaire creation type operation</h2> <form action="actionTypeOper.php" method="post" > <p>Nom type operation : <br /><input type="text" name="nouveautypeOper"/></p> <p>domaine associe :</br> <?php mysql_connect("localhost", "root", "" ); mysql_select_db("basec3p" ); $reponse = mysql_query("SELECT * FROM domaine" ); echo'<select name="domaine">'; while ( $donnees = mysql_fetch_array($reponse)) { ?> <option value="<?php echo $donnees['domaine']; ?>"><?php echo $donnees['domaine']; ?></option> <?php } echo'</select>'; mysql_close(); // Déconnexion de MySQL ?> </p> <input name="valider" type="submit" value="Valider" /> </form> </body>
Merci !!! Mon problème c'était que j'avais bien les données qui s'affichaient mais chacune dans sa propre liste déroulante (donc avec une donnée par liste...), déplacer le select avant le while a résolu le problème
<?php
/*Connection à la BDD*/
include("config.php");
$reponse = $bdd->query('SELECT * FROM nounou');
echo '<select name="etat" id="etat">';
while ($donnees = $reponse->fetch())
{
?>
<option><?php echo $donnees['nom'];?></option>
<?php
}
echo '</select>';
/*Fermeture de la BDD*/
$reponse->closeCursor();
?>
<?php
/*Connection à la BDD*/
include("config.php");
$reponse = $bdd->query('SELECT * FROM nounou');
echo '<select name="etat" id="etat">';
while ($donnees = $reponse->fetch())
{
?>
<option><?php echo $donnees['nom'];?></option>
<?php
}
echo '</select>';
/*Fermeture de la BDD*/
$reponse->closeCursor();
?>