logo

NPDS : Gestion de contenu et de communauté


Content & Community Management System (CCMS) robuste, sécurisé, complet, performant, parlant vraiment français, libre (Open-Source) et gratuit.
42 visiteur(s) et 1 membre(s) en ligne.
Activité du Site

Pages vues depuis 25/05/2001 : 110 359 096

  • Nb. de membres 8 696
  • Nb. d'articles 1 695
  • Nb. de forums 26
  • Nb. de sujets 8
  • Nb. de critiques 92

Top 10  Statistiques

Index du forum »»  Le coin des codeurs »» menus déroulants

menus déroulants#6457

9Contributeur(s)
camyVVbellecuisseTribal-DolphinaxelGiamDocmillo-wasykebirMike
3 Modérateur(s)
developpeurjpbJireck
camy camyicon_post
salut,
voila mon problème :
je dispose d'un premier menu déroulant qui permet à l'utilisateur de choisir une catégorie.
Lorsque l'utilisateur choisit sa catégorie,le deuxieme menu déroulant propose les différentes activités de la catégorie choisie.
Les catégories et les activités sont dans une base de données mySQL.
Et je me sert de php(et pas !javascript!).

Je sais créer un menu déroulant et faire le lien avec une autre page php.

Merci

Camy
VV VVicon_post
si tu veux pas de !!javascript!!, il faudra que ton deuxieme menu déroulant se trouve dans une autre page, ou que ton formulaire ré-appelle la même page.

-Une fois que tu as récuperé la categorie, tu fais la requete pour avoir les activités de cette catégorie :
$acti=mysql_query(" select * from acticités where (activité appartient à la catégorie) ");

-tu comptes le nombre de résultats :
$n=mysql_num_rows($acti);

-tu commence ton meu déroulant :
echo "<select name="activite" size="4">";

-puis tu construis ton menu déroulant avec une boucle :

$i=0;
while($i!=$n)
{
//tu recupere la ligne suivante
$a=mysql_fetch_array($acti);
//tu créé la ligne de ton menu déroulant
echo "<option>";
print "$a["champ contenant le nom de l'activité"]";
echo "</option>";
$i=$i+1;
}

-enfin tu finis ton menu déroulant :
echo "</select>";
bellecuisse bellecuisseicon_post
une charmante personne m'a aider a faire le liens entre plusieurs menu deroulant alors je vous le communique
je ne sais pas si ca va vous servir mais bon!!!!!

le but est d'avoir deux menus deroulanst la premiere selectionne des champs dans un base de donnne
et l'autre permet de faire une selection plus precise sur la meme base
le but ici est de faire une suppression mais elle n'est pas encore faite !!!
si ca peut aider des gens ca me fera tres plaisir :-D

function SupLinks($stage)
{
!!include!!("header.php");

OpenTable();
$mainlink = 1;
mainheader();
echo "</center><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=1 BORDER=0><TR><TD COLSPAN=2><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=8 BORDER=0><TR><TD>";
$result1=mysql_query("select type_stage from gestion_stage");
echo "<form name=\"formulairecache\" method=\"POST\" action=\"$PHP_SELF\">";
echo "Type de stage"."<select CLASS=\"TEXTBOX_STANDARD\" name=\"stage\" onChange=\"document.forms['formulairecache'].submit()\">";

while(list($type_stage)=mysql_fetch_array($result1))
{
echo "<option ";
if ($stage==$type_stage) echo "selected";
echo ">$type_stage</option>";
}
echo"";
if($stage!="")
{
echo "</center><TABLE WIDTH=100% CELLSPACING=1 CELLPADDING=1 BORDER=0><TR><TD COLSPAN=2><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=8 BORDER=0><TR><TD>";
$result2=mysql_query("select nom_stage from gestion_stage where type_stage='$stage'");
echo "Nom du stage"."<select CLASS=\"TEXTBOX_STANDARD\" name=\"nom_stage\" >";
while(list($nom_stage)=mysql_fetch_array($result2))
{
echo "<option>$nom_stage</option>";
}
}
echo "</form>";
}



[ Message édité par : bellecuisse : 05-07-2003 18:13 ]
bellecuisse bellecuisseicon_post
hummm!!!!

encore les menus deroulants
mon truc marche nickel
mais comment faire pour transmettre a une fonction les valeurs selectionner ?

toutes mes tentatives ont echoues ,ma fonction ne reconnait pas les parametres
vous avez tous les details au dessus
si vous avez une idee !!!



bellecuisse bellecuisseicon_post
voila ma fonciton

2 pbs se posent: :paf :paf

si le premier menu deroulant ne comporte q"un seul champ ,la selection semble impossible, c'est la meme chose si il y un seul choix sur le deuxieme menu le reste de s'affiche pas!!!!
comment faire pour que la selection soit operationnel ?(meme dans c'est deux ca)

et a la fin du code ,je fais appelle a une fonciton "Suppression" comment lui faire parvenir les parametres que je viens de selectionner avec les menus deroulants

je suis dessus depuis un moment si vous avez une solution.................( enfin c'est un appel a l'aide)

je vous remerice par avance




function SupLinks($ville,$etablissement)
{
!!!include!!!("header.php");

OpenTable();
$mainlink = 1;
mainheader();
echo "</center><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=1 BORDER=0><TR><TD COLSPAN=2><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=8 BORDER=0><TR><TD>";
$result1=mysql_query("select DISTINCT UPPER(nom_ville) from ville_ref");
echo "<form name=\"formulairecache\" method=\"POST\" action=\"$PHP_SELF\">";
echo "ville"."<select CLASS=\"TEXTBOX_STANDARD\" name=\"ville\" onChange=\"document.forms['formulairecache'].submit()\">";
//echo "<OPTION VALUE=\"\">"."Slectionner une ville"."</option>\n";
while(list($nom_ville)=mysql_fetch_array($result1))
{
echo "<option ";
if ($ville==$nom_ville) echo "selected";
echo ">$nom_ville</option>";
}
echo"";

if($ville!="")
{
echo "</center><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=1 BORDER=0><TR><TD COLSPAN=2><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=8 BORDER=0><TR><TD>";
$result2=mysql_query("select DISTINCT UPPER(nom_etablissement) from ville_ref where nom_ville='$ville'");
echo "<form name=\"formulairecache\" method=\"POST\" action=\"$PHP_SELF\">";
echo "etablissement"."<select CLASS=\"TEXTBOX_STANDARD\" name=\"etablissement\" onChange=\"document.forms['formulairecache'].submit()\">";
//echo "<OPTION VALUE=\"\">"."Selectionner une etablissement"."</option>\n";
while(list($nom_etablissement)=mysql_fetch_array($result2))
{
echo "<option ";
if ($etablissement==$nom_etablissement) echo "selected";
echo ">$nom_etablissement</option>";
}
echo"";
if($etablissement!="")
{
echo "</center><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=1 BORDER=0><TR><TD COLSPAN=2><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=8 BORDER=0><TR><TD>";
echo"<i><b>Vous avez choisit l'etablissemnt $etablissement de la ville de $ville</b></i>

";

echo "<a href=saisie_etabliessement.php?op=Suppression CLASS=\"BOX\">"."Suppression de l'element"."</a>
";


}
echo"";

}
echo "</form>";
echo "</form>";
}

<font size=1>[ Message édité par : bellecuisse : 08-07-2003 14:57 ]</font>

[ Message édité par : bellecuisse : 08-07-2003 14:57 ]
bellecuisse bellecuisseicon_post
je susi tout seul ou koi

bon pour le premiere solution j'ai trouver :=! ,il faut mettre le premier champs a blanc
mais pour l'autre j'attends tjrs vos reponces !!!!! :-?
camy camyicon_post
Je n'arrive à mettre en relation mon premier menu déroulant avec le second !!!!
Car je n'arrive pas à mémoriser la valeur choisie du premier menu.
Voici mon code si qq'1 peut m'aider :

<?php

echo"<form method='POST' action='theme2.php3'>";
echo"<B>Domaine d'activité :</B>
";

$db=mysql_connect("localhost", "root", "");
mysql_select_db('assos1',$db) ;
$sql='SELECT nom FROM categories' ;
$result = mysql_query($sql);

$nb=mysql_num_rows($result) ;

echo"<SELECT TYPE='text' NAME='domaine' SIZE='1'>" ;
for($i=1; $i <= $nb; $i++) {
$tabdom=mysql_fetch_array($result) ;
echo"<option value='$tabdom[nom]'>$tabdom[nom]
</option>" ;
}
echo"</SELECT>" ;

echo"</FORM>" ;


$dom = $_POST['domaine'];(ceci devrait me mémorise le domaine choisi!!)


echo"<form method='POST' action='act.php3'>";
echo"<B>Activité :</B>
";

$sql2='SELECT distinct A.nom FROM activités A ,categories C
WHERE C.nom="$dom" and A.code=C.code' ;
$result2 = mysql_query($sql2);

$nb2=mysql_num_rows($result2) ;
echo"$nb2<br>" ;

echo"<SELECT TYPE='text' NAME='activite' SIZE='1'>" ;
for($i=1; $i <= $nb; $i++) {
$tabact=mysql_fetch_array($result2) ;
echo"<option value='$tabact[nom]'>$tabact[nom]
</option>" ;
}
echo"</SELECT>" ;

echo"<center><INPUT TYPE='submit' NAME='Rechercher' VALUE='Rechercher'>
</center>";

echo"</FORM>" ;

?>


[ Message édité par : Tribal-Dolphin : 10-07-2003 17:07 ]
bellecuisse bellecuisseicon_post
tu peux le refaire en desactivant le htlm stp ca serait super cool merci

:=!
bellecuisse bellecuisseicon_post
ecoute je ne suis pas un pros mais je peux dire que j'ai posé du code qui marche
toutes les valeurs sont memorisées
base toi dessus ,il faut faire un rafraichissement de ta page pour chaque selection sinon elle ne sont pas prise en compte
camy camyicon_post
Je n'ai pas !javascript!.
du coup, certaines fonctions de ton programme ne marche pas.
bellecuisse bellecuisseicon_post
j'ai la meme erreur mais je tente de faire ca!!!
il faut que tu appelles la variable du premier <form> dans le deuxieme regarde la derniere ligne de ce code


echo "</center><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=1 BORDER=0><TR><TD COLSPAN=2><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=8 BORDER=0><TR><TD>";
$result1=mysql_query("select DISTINCT UPPER(nom_stage) from gestion_stage");
echo "<form name=\"formulairecache\" method=\"POST\" action=$PHP_SELF>";
echo "Nom de stage"."<select CLASS=\"TEXTBOX_STANDARD\" name=\"stage\" onChange=\"document.forms['formulairecache'].submit()\">";
echo "<OPTION VALUE=\"\">"."Selectionner un nom de stage"."</option>\n";
while(list($nom_stage)=mysql_fetch_array($result1))
{
echo "<option ";
if ($stage==$nom_stage) echo "selected";
echo ">$nom_stage</option>";
}

echo "</form>";
}

echo "</center><TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=1 BORDER=0><TR><TD COLSPAN=2>
<TABLE WIDTH=100% CELLSPACING=0 CELLPADDING=8 BORDER=0><TR><TD>";

if (isset($user) || $links_anonaddlinklock != 1) {
echo "<LI>"."vous allez entrer les informations des stages"."
<LI>"."ces informations vont faciliter l'inscription des utilisateurs"."


<form method=post action=stages.php?op=Add name=adminForm>
"."<input type=hidden name=nom_stage value=$nom_stage>......

:-? normalement $nom_stage est present ici :-? et sera present pour mon POST

je pense que si je te dis une connerie une bonne ames sera la pour nous!!



<font size=1>[ Message édité par : bellecuisse : 15-07-2003 17:13 ]</font>

[ Message édité par : bellecuisse : 15-07-2003 17:14 ]
Tribal-Dolphin Tribal-Dolphinicon_post
http://www.tout!!javascript!!.com ( sans les ! )
Il on un script tout fait de menu déroulant à 2 et 3 niveaux.


[ Message édité par : Tribal-Dolphin : 15-07-2003 18:27 ]
axel axelicon_post
une fois de plus, et comme j'aime a le dire :
"rien ne sert de réinventer la roue, ca ne tournera pas mieux !"

dieu que je l'aime, cette phrase !!
camy camyicon_post
Pour l'instant, je n'ai pas installé !javascript!.
Est -ce qu'il n'y a pas une façon de le faire juste avec php et mysql?
Tribal-Dolphin Tribal-Dolphinicon_post
nan, il te faudras obligatoirement du !javascript!.
Mais sache que le !javascript! n'est pas à intallé, il est d'office avec Internet Explorer.
GiamDoc GiamDocicon_post
il faut peut être l'activer!
options internet
avancé
et cocher la case
@ :-D +
bellecuisse bellecuisseicon_post
je reconnais ton site est un bon truc pour les gens peu courageux :-D

j'ai deja trouver des trucs bien sympatiques
bellecuisse bellecuisseicon_post
encore un truc de bien !!!!!! :paf
je suis en triande faire plein de teste mais rien ne marche

je suis sous modules/sform/extend-user/extender/formulaire.php

j'ai plien de jolie chose comme ca qui semble tres facile a comprendre
$m->add_field('C1', "Nom du responsable d'etablissement",$C1,'text',true,100,"","");
pour le moment tt va bien

maintenant je voudrais faire une relation entre les add_field et un menu deroulant (je suis fou!!!)
relation avec un base de donnee bien sure

pb: tous mes testes sont foireux :-D
qui a une idee???? qui pourrait me sauver
camy camyicon_post
Je ne sais pas du tout comment on utilise !javascript!.
J'ai recuperé sur tout!javascript! un script mais c une page html et je n'ai donc pas le code !!!
Comment je peux le récuperer?
Merci
Camy
camy camyicon_post
Je ne sais pas du tout comment on utilise !javascript!.
J'ai recuperé sur tout!javascript! un script mais c une page html et je n'ai donc pas le code !!!
Comment je peux le récuperer?
Merci
Camy