Menu déroulant
caro__48
Messages postés
264
Statut
Membre
-
caro__48 Messages postés 264 Statut Membre -
caro__48 Messages postés 264 Statut Membre -
salut,
je cherche a faire deux menu déroulant qui se complète l'un l'autre.
je m'explique:
j'ai une base de donnée (sous phpmyadmin) avec 3 tables.
table 1 --> sources
table 2 --> fichiers
table 3 --> données
je voudrais réaliser un menu déroulant dynamique en 3 temps.
1ere partie --> recherche par sources
2 eme partie --> Affinage par fichier
3 ème partie --> Description des données
partie 1
choix des sources: correspond à la table 1 (on choisit la source --> de la s'affiche les fichiers présents dans la sources dans un autre menu déroulant)
partie 2
choix de fichiers : correspond à la table 2 (les fichiers correspondant à la sources sont affichés dans ce menu déroulant ou la personne va pouvoir choisir un menu spécifique)
partie 3
une fois les deux menu déroulant remplis et validés, les données présentes dans la table3 doivent s'afficher dans un tableau..
J' ai commencer a faire çà mais je ne sais pas comment faire:
<table border="1">
<tr>
<td >Choix de la sources</td>
<td > Sources:
<form method="post" name="Choix" action="index.php">
<?php
//connexion à la base
mysql_connect("localhost","root","");
mysql_select_db("polen") or die("Connexion impossible");
//requete selection 1ere table
$requete=mysql_query("select id_sources, Sources from sources");
?>
<br> <?php echo('<select name="sources" onchange="document.forms[0].submit();">');
echo('<option value="'.'">'.'</option>');
while ($ligne=mysql_fetch_object($requete)){
echo('<option value="'.$ligne->Sources .'">'.$ligne->Sources.'</option>'); }
echo('</select>');
?>
</td>
</tr>
<tr>
<td> Choisissez un fichier dans la liste: </td>
<td> Fichiers:
<form method="post" name="med" action="">
<? $requete1=mysql_query("select Categorie from catégories where id_sources ="("SELECT id_sources FROM sources")"")
?>
<?php echo('<select name="page">');
if($_POST['Choix']==""){
echo('<option value="'.'">'.'Choisissez une spécialité avant'.'</option>');
}
else
{echo('<option value="'.'">'.'</option>');}
while ($ligne1=mysql_fetch_object($requete1)){
echo('<option value="'.$ligne1->fichiers .'">'.$ligne1->fichiers.'</option>'); }
echo('</select>');
?>
<input type="submit" name="bncherche" value="Chercher">
</form>
le problème c'est que sa marche pas et je comprend pas trop pourquoi je suis pas très forte en php mysql alors si vous pouviez m'aider ce serai cool!!!
merci
je cherche a faire deux menu déroulant qui se complète l'un l'autre.
je m'explique:
j'ai une base de donnée (sous phpmyadmin) avec 3 tables.
table 1 --> sources
table 2 --> fichiers
table 3 --> données
je voudrais réaliser un menu déroulant dynamique en 3 temps.
1ere partie --> recherche par sources
2 eme partie --> Affinage par fichier
3 ème partie --> Description des données
partie 1
choix des sources: correspond à la table 1 (on choisit la source --> de la s'affiche les fichiers présents dans la sources dans un autre menu déroulant)
partie 2
choix de fichiers : correspond à la table 2 (les fichiers correspondant à la sources sont affichés dans ce menu déroulant ou la personne va pouvoir choisir un menu spécifique)
partie 3
une fois les deux menu déroulant remplis et validés, les données présentes dans la table3 doivent s'afficher dans un tableau..
J' ai commencer a faire çà mais je ne sais pas comment faire:
<table border="1">
<tr>
<td >Choix de la sources</td>
<td > Sources:
<form method="post" name="Choix" action="index.php">
<?php
//connexion à la base
mysql_connect("localhost","root","");
mysql_select_db("polen") or die("Connexion impossible");
//requete selection 1ere table
$requete=mysql_query("select id_sources, Sources from sources");
?>
<br> <?php echo('<select name="sources" onchange="document.forms[0].submit();">');
echo('<option value="'.'">'.'</option>');
while ($ligne=mysql_fetch_object($requete)){
echo('<option value="'.$ligne->Sources .'">'.$ligne->Sources.'</option>'); }
echo('</select>');
?>
</td>
</tr>
<tr>
<td> Choisissez un fichier dans la liste: </td>
<td> Fichiers:
<form method="post" name="med" action="">
<? $requete1=mysql_query("select Categorie from catégories where id_sources ="("SELECT id_sources FROM sources")"")
?>
<?php echo('<select name="page">');
if($_POST['Choix']==""){
echo('<option value="'.'">'.'Choisissez une spécialité avant'.'</option>');
}
else
{echo('<option value="'.'">'.'</option>');}
while ($ligne1=mysql_fetch_object($requete1)){
echo('<option value="'.$ligne1->fichiers .'">'.$ligne1->fichiers.'</option>'); }
echo('</select>');
?>
<input type="submit" name="bncherche" value="Chercher">
</form>
le problème c'est que sa marche pas et je comprend pas trop pourquoi je suis pas très forte en php mysql alors si vous pouviez m'aider ce serai cool!!!
merci
A voir également:
- Menu déroulant
- Menu déroulant excel - Guide
- Excel menu déroulant en cascade - Guide
- Menu déroulant google sheet - Accueil - Guide bureautique
- Enlever menu déroulant excel ✓ - Forum Word
- Canon quick menu - Télécharger - Utilitaires
2 réponses
Bonjour,
pour tes requêtes, essaye plutôt de faire des jointures de ce types:
select ctg.Categorie from catégories ctg, sources src where ctg.id_sources = src.id_sources
De plus, je ne sais pas comment sont construire des tables mais pour réussir à faire ce que tu veux, tu dois avoir un id (unique et en incrémentation automatique) dans chaque table.
De plus, la table fichiers doit avoir un id_ref (id de référence de la source) qui sera l'id indiquant que le fichier appartient a tel ou tel source.
De même pour les données envers la table fichier
Enfin, pour voir si t'as requête te ressort bien quelque chose, exécute la sous PHPMYADMIN (car j'imagine que c'est PHPMYADMIN avec MYSQL) ou fait un var_dump() ou print_r() de ta variable contenant le résultat de celle-ci !
A+
Gaerebut
pour tes requêtes, essaye plutôt de faire des jointures de ce types:
select ctg.Categorie from catégories ctg, sources src where ctg.id_sources = src.id_sources
De plus, je ne sais pas comment sont construire des tables mais pour réussir à faire ce que tu veux, tu dois avoir un id (unique et en incrémentation automatique) dans chaque table.
De plus, la table fichiers doit avoir un id_ref (id de référence de la source) qui sera l'id indiquant que le fichier appartient a tel ou tel source.
De même pour les données envers la table fichier
Enfin, pour voir si t'as requête te ressort bien quelque chose, exécute la sous PHPMYADMIN (car j'imagine que c'est PHPMYADMIN avec MYSQL) ou fait un var_dump() ou print_r() de ta variable contenant le résultat de celle-ci !
A+
Gaerebut
ben en fait j'ai un peu changer mon code et j'ai mis çà:
<table border="1">
<tr>
<td >Choix de la sources</td>
<td>
Sources:
<form method="post" name="Choix" action="index.php">
<?php
//connexion à la base
mysql_connect("localhost","root","");
mysql_select_db("polen") or die("Connexion impossible");
//requete selection 1ere table
$requete=mysql_query("select id_sources, Sources from sources");
?>
<br> <?php echo('<select name="sources" onchange="document.forms[0].submit();">');
echo('<option value="'.'">'.'</option>');
while ($ligne=mysql_fetch_object($requete)){
echo('<option value="'.$ligne->Sources .'">'.$ligne->Sources.'</option>'); }
echo('</select>');
?>
<tr>
<td> Choisissez un fichier dans la liste: </td>
<td> Fichiers:
<?php
if(isset($_POST['sources']))
{
$requete1=mysql_query("select Categorie from catégories where sources.id_sources = catégories.id_sources AND id_sources ='".$_POST['sources']."'");
echo('<select name="fichier">');
echo('<option value="'.'">'.'</option>');
while ($ligne1=mysql_fetch_object($requete1)){
echo('<option value="'.$ligne1->Categorie .'">'.$ligne1->Categorie.'</option>'); }
echo('</select>');
}
?>
</td>
</tr>
</table>
<input type="submit" name="bncherche" value="Chercher">
</form>
le seul problème c'est que mon 1er menu déroulant s'affiche mais que le deuxième lui m'affiche rien. Je pense que j'ai peut être un problème avec ma requete sql.
merci de votre aide..
une personne ma conseillé de faire çà mais je sais pas comment le faire quelqu'un peu m'aider?
conseil
tu n'as pas besoin de faire de jointure dans ta deuxième requête. En plus tu n'as pas mis la table sources dans la requête du coup non seulement la jointure est inutile mais en plus elle ne marche pas car le système ne sait pas d'où vient sources.id_sources.
Pour garder la source sélectionnée, il suffit de le coder: il faut que dans ta première boucle while tu vérifies si ce qu'à rempli l'utilisateur (s'il a rempli qqch...) est égal à $ligne->Sources. Si oui, dans ce cas il faut que le tag option ait un atttribut "selected"
<table border="1">
<tr>
<td >Choix de la sources</td>
<td>
Sources:
<form method="post" name="Choix" action="index.php">
<?php
//connexion à la base
mysql_connect("localhost","root","");
mysql_select_db("polen") or die("Connexion impossible");
//requete selection 1ere table
$requete=mysql_query("select id_sources, Sources from sources");
?>
<br> <?php echo('<select name="sources" onchange="document.forms[0].submit();">');
echo('<option value="'.'">'.'</option>');
while ($ligne=mysql_fetch_object($requete)){
echo('<option value="'.$ligne->Sources .'">'.$ligne->Sources.'</option>'); }
echo('</select>');
?>
<tr>
<td> Choisissez un fichier dans la liste: </td>
<td> Fichiers:
<?php
if(isset($_POST['sources']))
{
$requete1=mysql_query("select Categorie from catégories where sources.id_sources = catégories.id_sources AND id_sources ='".$_POST['sources']."'");
echo('<select name="fichier">');
echo('<option value="'.'">'.'</option>');
while ($ligne1=mysql_fetch_object($requete1)){
echo('<option value="'.$ligne1->Categorie .'">'.$ligne1->Categorie.'</option>'); }
echo('</select>');
}
?>
</td>
</tr>
</table>
<input type="submit" name="bncherche" value="Chercher">
</form>
le seul problème c'est que mon 1er menu déroulant s'affiche mais que le deuxième lui m'affiche rien. Je pense que j'ai peut être un problème avec ma requete sql.
merci de votre aide..
une personne ma conseillé de faire çà mais je sais pas comment le faire quelqu'un peu m'aider?
conseil
tu n'as pas besoin de faire de jointure dans ta deuxième requête. En plus tu n'as pas mis la table sources dans la requête du coup non seulement la jointure est inutile mais en plus elle ne marche pas car le système ne sait pas d'où vient sources.id_sources.
Pour garder la source sélectionnée, il suffit de le coder: il faut que dans ta première boucle while tu vérifies si ce qu'à rempli l'utilisateur (s'il a rempli qqch...) est égal à $ligne->Sources. Si oui, dans ce cas il faut que le tag option ait un atttribut "selected"