IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Problème de liste déroulante utilisant une valeur d'une autre liste [Débutant(e)] [MySQL]


Sujet :

PHP & Base de données

  1. #41
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    Pourquoi dans la liste encadrement j'ai une ligne sauté entre chaque personne ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    <?
    	//liste des personnes de l'encadrement
    	echo "<form name='formencadrement' method='post' action=''>";
    	echo "<br><br><br>";
    	$reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT";
    	$mvt=mysql_query($reqmvt)or die(mysql_error());
    	echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$nom=strtoupper($row["NOM_ENCADREMENT"]);
    		$prenom=strtolower($row["PRENOM_ENCADREMENT"]);
    		$prenom=ucfirst($prenom);
    		echo "<option value=''>".$nom."&nbsp;&nbsp;".$prenom."</option>";
    		echo "<option value='".$row["NUM_ENCADREMENT"]."'";
    		if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline'])) 
    		{
    			echo ' selected="selected" ';
    		}
    		echo ">".$txt."</option>";	
    	}
    	echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    	echo "</form>";
    ?>

  2. #42
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Bha dans ton select tu affiche un premier option avec nom+prenom, puis je ne sais pas pourquoi tu mets un deuxieme option qui est censé affiché $txt, hors a prioris txt est vide. Donc ca crée un choix mais qui est vide entre chauqe personne.
    Such is the situation in our Fallen Galaxy

  3. #43
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Tu as deux options à chaque tour de boucle une pour afficher et une qui a l'air d'être un copier-coller au mauvais endroit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    echo "<option value=''>".$nom."&nbsp;&nbsp;".$prenom."</option>";
    		echo "<option value='".$row["NUM_ENCADREMENT"]."'"; // tu as déjà une option avant
    		if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline'])) // il n'y a pas de $row['discipline'] ici
    		{
    			echo ' selected="selected" ';
    		}
    		echo ">".$txt."</option>";// $txt n'est définie nulle part
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #44
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    J'avais rajouté ca pour conserver la personne à l'affichage. Quand je valide la personne. Je veux que le nom soit encore affiché. Et quand je fais mes manips sur la discipline, comite, club. Je veux que dans ma premiere liste ce soit toujours affiché. Alors je fais comment ?

  5. #45
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    Si vous pouviez répondre à ma question précédente ce serait sympa. Merci

    Mais j'en ai une autre.

    Est-ce que pour que quand je choisis ma discipline, je suis obligée de valider mon résultat pour que la deuxieme liste prenne les bonnes valeurs. Il n'y a pas un moyen plus rapide ?

  6. #46
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Citation Envoyé par Lydie12
    J'avais rajouté ca pour conserver la personne à l'affichage. Quand je valide la personne. Je veux que le nom soit encore affiché. Et quand je fais mes manips sur la discipline, comite, club. Je veux que dans ma premiere liste ce soit toujours affiché. Alors je fais comment ?
    Pour faire ca je mettrais un

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if( isset($_POST['personne']) ) echo '<input type="hidden" name="personne" value="' .$_POST['personne']. '"/>';

    et de vérifier dans ta boucle qui génère la liste quand la personne est egal à $_POST['personne'] de mettre l'attribut selected="selected".

    En fait un peu comme ce que tu as fait pour les autres.
    Such is the situation in our Fallen Galaxy

  7. #47
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Citation Envoyé par Lydie12
    Si vous pouviez répondre à ma question précédente ce serait sympa. Merci

    Mais j'en ai une autre.

    Est-ce que pour que quand je choisis ma discipline, je suis obligée de valider mon résultat pour que la deuxieme liste prenne les bonnes valeurs. Il n'y a pas un moyen plus rapide ?
    Si je comprend bien ce que tu veux dire, tu voudrais quand tu clique sur une personne dans la liste déroulante afficher la liste suivante.

    Cette méthode existe, mais il faut connaitre principalement le javascript, et éventuellement comprendre le XML. C'est ce qu'on appelle AJAX (Asynchronous Javascript And Xml). Ca permet en fait d'envoyer une requete par le javascript vers une page php (qui va pouvoir faire une recherche dans la base) et cette page va te renvoyer des valeur que tu pourra traiter, toujours en Javascript, pour les ajouter dynamiquement à tes listes.
    Such is the situation in our Fallen Galaxy

  8. #48
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    ET tu fais ca comment ?

    Citation Envoyé par Asmodean
    Si je comprend bien ce que tu veux dire, tu voudrais quand tu clique sur une personne dans la liste déroulante afficher la liste suivante.

    Cette méthode existe, mais il faut connaitre principalement le javascript, et éventuellement comprendre le XML. C'est ce qu'on appelle AJAX (Asynchronous Javascript And Xml). Ca permet en fait d'envoyer une requete par le javascript vers une page php (qui va pouvoir faire une recherche dans la base) et cette page va te renvoyer des valeur que tu pourra traiter, toujours en Javascript, pour les ajouter dynamiquement à tes listes.

  9. #49
    Membre averti Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 378
    Points
    378
    Par défaut
    Dans la théorie,

    Tu ajoute des détecteur d'event sur tes select (ce sont des attributs genre onselect="fonction()" je ne me rappelle plus exactement).

    Dans les fonctions javascript que tu appelles lors d'un événement par exemple, tu crée un XmlHttpRequest si je me souviens bien, qui va appelé une page php (avec eventuellement des arguments). Cette page php va éxécuter un script, par exemple récupérer une liste di'nfo dans ta base de donnée. Puis tu as juste a fair eun echo des ces données.

    Ensuite dans ton code Javascript tu récépère ce qui a été affiché par la page php. Et là avec soit le DOM, soit InnerHTML tu affiche dynamiquement des données sur ta page html. Par exemple tu affiche un ensemble de balise <option...> dans le select de ton choix.

    Enfin ca s'apprend tout ca et y'a des tutos un peu partout.
    Such is the situation in our Fallen Galaxy

  10. #50
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je vais tacher de répondre à tes 2 questions.

    D'abord, une petite explication : Pour garder sélectionnée la valeur que tu avais choisie dans une liste lors d'un rechargement, il faut tester à chaque ligne de la liste si celle-ci est égale à la valeur qu'on récupère.
    D'où le code (ceci est un code exemple avec des noms arbitraires)
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    echo "<form action='' method='post'>";
    	echo "<select name='liste'>";
    // boucle ...
    	// pour chaque élément de la liste, on teste si la variable post existe et si c'est cet élément 
    	echo "<option value='valeur' ";
    	if (isset($_POST['liste']) && $_POST['liste']=='valeur') {
    		// si la valeur est celle sélectionnée précedement
    		echo " selected ";
    	}
    	echo "> Valeur </option>";
    //fin de la boucle
    echo "</select>";
    echo "</form>";

    Pour éviter d'avoir à cliquer sur un bouton valider, il y a les évenements javascripts comme onchange. Le code suivant déclenche la soumission du formulaire (comme un bouton submit) lorsque tu sélectionnes une autre option de la liste.
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name="liste" onchange="form.submit()" >
    Et si tu utilises ce genre d'évenement, tu n'es pas obligée d'utiliser plusieurs formulaires. Il faut juste penser à fermer la balise de formulaire tout en bas de la page. Ce qui te donne un squelette de code de cette forme :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    //ouverture du formulaire
    echo "<form action='' method='post' name='form'>";
     
    // liste 1
    echo "<select name='liste1' onchange='form.submit()'>";
    // boucle ...
    // pour chaque élément de la liste, on teste si la variable post existe et si c'est cet élément 
    echo "<option value='valeur' ";
    // si c'est le cas on la sélectionne
    if (isset($_POST['liste1']) && $_POST['liste1']=='valeur') {
    	echo " selected ";
    }
    echo "> Valeur </option>";
    //fin de la boucle
    echo "</select>";
     
    // si la liste1 a été soumise
    if (isset ($_POST['liste1']) {
     
    	//liste 2
    	echo "<select name='liste2' onchange='form.submit()'>";
    	// .... même structure de la liste 1
    	echo "</select>";	
     
    	//si la liste2 a été soumise
    	if (isset ($_POST['liste2']) {
     
    		//liste 3
    		echo "<select name='liste3' onchange='form.submit()'>";
    		// .... même structure de la liste 1
    		echo "</select>";	
     
    		// si la liste 3 a été soumise (les 3 listes validées)
    		if (isset ($_POST['liste3']) {
     
    			//ce que tu veux faire des 3 listes ici
     
    		}//fin isset liste3
     
    	}// fin du isset liste2
     
    }//fin du isset liste1
     
    //fermeture du formulaire
    echo "</form>";

    Voilà, j'espère que tout ça t'éclaire un peu

    EDIT : l'inconvénient des posts de 3 km de long, c'est que le temps de les taper, il ya eu 3 réponses
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #51
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    Pour la ligne "//ce que tu veux faire des 3 listes ici" en fait je veux juste récuperer le num_club.

    Il me faut insérer le num_club, le num_encadrement et le num_fonction dans ma table ENCADRER_CLUB, je fais comment et je mets le code où ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <? require "Includes/fonctions.php"; ?>
     
    <div class="titre">Selectionnez la personne</div>
     
    <?
    	//liste des personnes de l'encadrement
    	echo "<form name='formencadrement' method='post' action=''>";
    	$reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT";
    	$mvt=mysql_query($reqmvt)or die(mysql_error());
    	echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$nom=strtoupper($row["NOM_ENCADREMENT"]);
    		$prenom=strtolower($row["PRENOM_ENCADREMENT"]);
    		$prenom=ucfirst($prenom);
    		echo "<option value=''>".$nom."&nbsp;&nbsp;".$prenom."</option>";
    	}
    	if( isset($_POST['personne']) ) echo '<input type="hidden" name="personne" value="' .$_POST['personne']. '"/>';
    	echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    	echo "</form>";
    ?>
     
    <div class="titre">Selectionnez sa fonction</div>
    <?
    //liste des fonctions
    echo "<form name='formfonction' method='post' action=''>";
    $reqfonction="select LIB_FONCTION, NUM_FONCTION from FONCTION order by LIB_FONCTION";
    $fonction=mysqlquery($reqfonction) or die (mysql_error());
    echo "<select name='fonction'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($fonction))
    	{
    		echo '<option value="'.$val['NUM_FONCTION'].'">'.$val['LIB_FONCTION'].'</option>';
    	}
    	if( isset($_POST['fonction']) ) echo '<input type="hidden" name="personne" value="' .$_POST['fonction']. '"/>';
    ?>
     
    <hr width="100%"><div class="titre">Selectionnez la discipline</div>
    <?
     
    //ouverture du formulaire
    echo "<form action='' method='post' name='form'>";
     
    // liste 1
    echo "<select name='liste1' onchange='form.submit()'>";
    	echo "<form name='formdiscipline' method='post' action=''>";
    	$reqmvt="select NUM_DISCIPLINE, NOM_DISCIPLINE from DISCIPLINE order by NOM_DISCIPLINE";
    	$mvt=mysql_query($reqmvt);
    	echo "<select name='discipline'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$txt=Tronquer_Texte($row["NOM_DISCIPLINE"], $longeur_max);
    		echo "<option value='".$row["NUM_DISCIPLINE"]."'";		 					
    	}
    // pour chaque élément de la liste, on teste si la variable post existe et si c'est cet élément 
    echo "<option value='valeur' ";
    // si c'est le cas on la sélectionne
    if (isset($_POST['liste1']) && $_POST['liste1']=='valeur') {
    	echo " selected ";
    }
    echo "> Valeur </option>";
    //fin de la boucle
    echo "</select>";
     
    // si la liste1 a été soumise
    if (isset ($_POST['liste1']) {
     
    	//liste 2
    	echo "<select name='liste2' onchange='form.submit()'>";
    $comite="select NUM_COMITE, NOM_COMITE FROM COMITE, LIGUE, FEDERATION, DISCIPLINE WHERE comite.num_ligue=ligue.num_ligue AND federation.num_federation=discipline.num_federation AND ligue.num_federation=federation.num_federation AND discipline.num_discipline=".$_POST['discipline'];
    			$reqcomite=mysql_query($comite)or die(mysql_error());
    			echo "<select name='comite'><option value=''>-- Selectionnez --</option>";
    			while ($row=mysql_fetch_array($reqcomite))
    			{
    				$txt=Tronquer_Texte($row["NOM_COMITE"], $longeur_max);
    				echo "<option value='".$row["NUM_COMITE"]."'";
    			}
    	echo "</select>";	
     
    	//si la liste2 a été soumise
    	if (isset ($_POST['liste2']) {
     
    		//liste 3
    		echo "<select name='liste3' onchange='form.submit()'>";
    		$club="select NUM_CLUB, NOM_CLUB FROM CLUB WHERE club.num_comite=".$_POST['comite'];
    					$reqclub=mysql_query($club)or die(mysql_error());
    					echo "<select name='club'><option value=''>-- Selectionnez --</option>";
    					while ($row=mysql_fetch_array($reqclub))
    					{
    						$txt=Tronquer_Texte($row["NOM_CLUB"], $longeur_max);
    						echo "<option value='".$row["NUM_CLUB"]."'>".$txt."</option>";						 					
    					}
    		echo "</select>";	
     
    		// si la liste 3 a été soumise (les 3 listes validées)
    		if (isset ($_POST['liste3']) {
     
    			//ce que tu veux faire des 3 listes ici
     
    		}//fin isset liste3
     
    	}// fin du isset liste2
     
    }//fin du isset liste1
     
    //fermeture du formulaire
    echo "</form>";

  12. #52
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    ET en plus j'ai une erreur ligne 65 (la ligne en rouge)
    le message : Parse error: parse error in h:\site intranet\drdjs\ajout\affectation_encadrement_club.php on line 65

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    <? require "Includes/fonctions.php"; ?>
    
    <div class="titre">Selectionnez la personne</div>
    
    <?
    	//liste des personnes de l'encadrement
    	echo "<form name='formencadrement' method='post' action=''>";
    	$reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT";
    	$mvt=mysql_query($reqmvt)or die(mysql_error());
    	echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$nom=strtoupper($row["NOM_ENCADREMENT"]);
    		$prenom=strtolower($row["PRENOM_ENCADREMENT"]);
    		$prenom=ucfirst($prenom);
    		echo "<option value=''>".$nom."&nbsp;&nbsp;".$prenom."</option>";
    	}
    	if( isset($_POST['personne']) ) echo '<input type="hidden" name="personne" value="' .$_POST['personne']. '"/>';
    	echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    	echo "</form>";
    ?>
    
    <div class="titre">Selectionnez sa fonction</div>
    <?
    //liste des fonctions
    echo "<form name='formfonction' method='post' action=''>";
    $reqfonction="select LIB_FONCTION, NUM_FONCTION from FONCTION order by LIB_FONCTION";
    $fonction=mysqlquery($reqfonction) or die (mysql_error());
    echo "<select name='fonction'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($fonction))
    	{
    		echo '<option value="'.$val['NUM_FONCTION'].'">'.$val['LIB_FONCTION'].'</option>';
    	}
    	if( isset($_POST['fonction']) ) echo '<input type="hidden" name="personne" value="' .$_POST['fonction']. '"/>';
    ?>
    
    <hr width="100%"><div class="titre">Selectionnez la discipline</div>
    <?
    
    //ouverture du formulaire
    echo "<form action='' method='post' name='form'>";
     
    // liste 1
    echo "<select name='liste1' onchange='form.submit()'>";
    	echo "<form name='formdiscipline' method='post' action=''>";
    	$reqmvt="select NUM_DISCIPLINE, NOM_DISCIPLINE from DISCIPLINE order by NOM_DISCIPLINE";
    	$mvt=mysql_query($reqmvt);
    	echo "<select name='discipline'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$txt=Tronquer_Texte($row["NOM_DISCIPLINE"], $longeur_max);
    		echo "<option value='".$row["NUM_DISCIPLINE"]."'";		 					
    	}
    // pour chaque élément de la liste, on teste si la variable post existe et si c'est cet élément 
    echo "<option value='valeur' ";
    // si c'est le cas on la sélectionne
    if (isset($_POST['liste1']) && $_POST['liste1']=='valeur') {
    	echo " selected ";
    }
    echo "> Valeur </option>";
    //fin de la boucle
    echo "</select>";
     
    // si la liste1 a été soumise
    if (isset ($_POST['liste1']) {
     
    	//liste 2
    	echo "<select name='liste2' onchange='form.submit()'>";
    $comite="select NUM_COMITE, NOM_COMITE FROM COMITE, LIGUE, FEDERATION, DISCIPLINE WHERE comite.num_ligue=ligue.num_ligue AND federation.num_federation=discipline.num_federation AND ligue.num_federation=federation.num_federation AND discipline.num_discipline=".$_POST['discipline'];
    			$reqcomite=mysql_query($comite)or die(mysql_error());
    			echo "<select name='comite'><option value=''>-- Selectionnez --</option>";
    			while ($row=mysql_fetch_array($reqcomite))
    			{
    				$txt=Tronquer_Texte($row["NOM_COMITE"], $longeur_max);
    				echo "<option value='".$row["NUM_COMITE"]."'";
    			}
    	echo "</select>";	
     
    	//si la liste2 a été soumise
    	if (isset ($_POST['liste2']) {
     
    		//liste 3
    		echo "<select name='liste3' onchange='form.submit()'>";
    		$club="select NUM_CLUB, NOM_CLUB FROM CLUB WHERE club.num_comite=".$_POST['comite'];
    					$reqclub=mysql_query($club)or die(mysql_error());
    					echo "<select name='club'><option value=''>-- Selectionnez --</option>";
    					while ($row=mysql_fetch_array($reqclub))
    					{
    						$txt=Tronquer_Texte($row["NOM_CLUB"], $longeur_max);
    						echo "<option value='".$row["NUM_CLUB"]."'>".$txt."</option>";						 					
    					}
    		echo "</select>";	
     
    		// si la liste 3 a été soumise (les 3 listes validées)
    		if (isset ($_POST['liste3']) {
     
    			//ce que tu veux faire des 3 listes ici
     
    		}//fin isset liste3
     
    	}// fin du isset liste2
     
    }//fin du isset liste1
     
    //fermeture du formulaire
    echo "</form>";

  13. #53
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Lydie, le code que je t'ai donné tout à l'heure était une structure. Il faut que tu remplaces liste1 par le nom de ta première liste, valeur par la valeur que tu veux insérer et ainsi de suite ...

    Bon, j'ai fait un peu de ménage dans tout ça. Normalement, sauf erreur ou oubli, ça donne un seul formulaire, avec un seul bouton submit qui n'apparait que lorsque tu as toutes tes listes dans la page. Je te laisse rajouter l'insertion dans la base de données.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    <? require "Includes/fonctions.php"; ?>
     
    //ouverture du formulaire
    echo "<form action='' method='post' name='form'>";
     
    <div class="titre">Selectionnez la personne</div>
     
    <?
    	//liste des personnes de l'encadrement
     
    	$reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT";
    	$mvt=mysql_query($reqmvt)or die(mysql_error());
    	echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$nom=strtoupper($row["NOM_ENCADREMENT"]);
    		$prenom=strtolower($row["PRENOM_ENCADREMENT"]);
    		$prenom=ucfirst($prenom);
    		echo "<option value='".$row['NUM_ENCADREMENT']."' ";
    		if (isset ($_POST['encadrement']) && $_POST['encadrement']==$row['NUM_ENCADREMENT']) echo " selected ";
    		echo "'>".$nom."&nbsp;&nbsp;".$prenom."</option>";
    	}
    	if( isset($_POST['personne']) ) echo '<input type="hidden" name="personne" value="' .$_POST['personne']. '"/>';
     
    ?>
     
    <div class="titre">Selectionnez sa fonction</div>
    <?
    	//liste des fonctions
     
    	$reqfonction="select LIB_FONCTION, NUM_FONCTION from FONCTION order by LIB_FONCTION";
    	$fonction=mysqlquery($reqfonction) or die (mysql_error());
    	echo "<select name='fonction'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($fonction))
    	{
    		echo '<option value="'.$val['NUM_FONCTION'].'" ';
    		if (isset ($_POST['focntion']) && $_POST['fonction']==$row['NUM_FONCTION']) echo " selected ";
    		echo '">'.$val['LIB_FONCTION'].'</option>';
    	}
     
    ?>
     
    <hr width="100%"><div class="titre">Selectionnez la discipline</div>
    <?
     
     
    	$reqmvt="select NUM_DISCIPLINE, NOM_DISCIPLINE from DISCIPLINE order by NOM_DISCIPLINE";
    	$mvt=mysql_query($reqmvt);
    	echo "<select name='discipline' onchange='form.submit()'>";
    	echo "<option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$txt=Tronquer_Texte($row["NOM_DISCIPLINE"], $longeur_max);
    		echo "<option value='".$row["NUM_DISCIPLINE"]."' ";	
    		if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline']))  echo ' selected="selected" ';
    		echo ">".$txt."</option>";
    	}
    	echo "</select>";
     
     
    	if (isset ($_POST['discipline']) {
     
    		$comite="select NUM_COMITE, NOM_COMITE FROM COMITE, LIGUE, FEDERATION, DISCIPLINE WHERE comite.num_ligue=ligue.num_ligue AND federation.num_federation=discipline.num_federation AND ligue.num_federation=federation.num_federation AND discipline.num_discipline=".$_POST['discipline'];
    		$reqcomite=mysql_query($comite)or die(mysql_error());
    		echo "<select name='comite' onchange='form.submit()'><option value=''>-- Selectionnez --</option>";
    		while ($row=mysql_fetch_array($reqcomite))
    		{
    			$txt=Tronquer_Texte($row["NOM_COMITE"], $longeur_max);
    			echo "<option value='".$row["NUM_COMITE"]."' ";
    			if(isset ($_POST['comite']) && ($row["NUM_COMITE"]==$_POST['comite']))  echo ' selected="selected" ';
    			echo ">".$txt."</option>";
    		}
    		echo "</select>";	
     
    		if (isset ($_POST['comite']) {
     
    			$club="select NUM_CLUB, NOM_CLUB FROM CLUB WHERE club.num_comite=".$_POST['comite'];
    			$reqclub=mysql_query($club)or die(mysql_error());
    			echo "<select name='club'><option value=''>-- Selectionnez --</option>";
    			while ($row=mysql_fetch_array($reqclub))
    			{
    				$txt=Tronquer_Texte($row["NOM_CLUB"], $longeur_max);
    				echo "<option value='".$row["NUM_COMITE"]."'>".$txt."</option>";				 					
    			}
    			echo "</select>";
    			echo "<input type='submit' value='Valider'>";
     		}
    	}
     
    //fermeture du formulaire
    echo "</form>";
     
    // Si encadrement, fonction et club existent et sont non vides
    if (isset ($_POST['encadrement'] , $_POST['fonction'] , $_POST['club']) && !empty($_POST['encadrement']) !empty($_POST['fonction']) !empty($_POST['club']) ) {
     
    //ici faire l'insertion dans la base de données
     
    }
    Bon courage !
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  14. #54
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    Ca doit être presque ca, j'ai juste un petit message d'erreur
    Parse error: parse error in h:\site intranet\drdjs\ajout\affectation_encadrement_club.php on line 61 (la ligne en rouge)

    Est-ce que le code de mon insert semble bon ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    <? require "Includes/fonctions.php"; ?>
    <?
    //ouverture du formulaire
    echo "<form action='' method='post' name='form'>";
     ?>
    <div class="titre">Selectionnez la personne</div>
     
    <?
    	//liste des personnes de l'encadrement
    	
    	$reqmvt="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from ENCADREMENT order by NOM_ENCADREMENT";
    	$mvt=mysql_query($reqmvt)or die(mysql_error());
    	echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$nom=strtoupper($row["NOM_ENCADREMENT"]);
    		$prenom=strtolower($row["PRENOM_ENCADREMENT"]);
    		$prenom=ucfirst($prenom);
    		echo "<option value='".$row['NUM_ENCADREMENT']."' ";
    		if (isset ($_POST['encadrement']) && $_POST['encadrement']==$row['NUM_ENCADREMENT']) echo " selected ";
    		echo "'>".$nom."&nbsp;&nbsp;".$prenom."</option>";
    	}
    	if( isset($_POST['personne']) ) echo '<input type="hidden" name="personne" value="' .$_POST['personne']. '"/>';
     
    ?>
     
    <div class="titre">Selectionnez sa fonction</div>
    <?
    	//liste des fonctions
     
    	$reqfonction="select LIB_FONCTION, NUM_FONCTION from FONCTION order by LIB_FONCTION";
    	$fonction=mysqlquery($reqfonction) or die (mysql_error());
    	echo "<select name='fonction'><option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($fonction))
    	{
    		echo '<option value="'.$val['NUM_FONCTION'].'" ';
    		if (isset ($_POST['focntion']) && $_POST['fonction']==$row['NUM_FONCTION']) echo " selected ";
    		echo '">'.$val['LIB_FONCTION'].'</option>';
    	}
    	
    ?>
     
    <hr width="100%"><div class="titre">Selectionnez la discipline</div>
    <?
     
     
    	$reqmvt="select NUM_DISCIPLINE, NOM_DISCIPLINE from DISCIPLINE order by NOM_DISCIPLINE";
    	$mvt=mysql_query($reqmvt);
    	echo "<select name='discipline' onchange='form.submit()'>";
    	echo "<option value=''>-- Selectionnez --</option>";
    	while ($row=mysql_fetch_array($mvt))
    	{
    		$txt=Tronquer_Texte($row["NOM_DISCIPLINE"], $longeur_max);
    		echo "<option value='".$row["NUM_DISCIPLINE"]."' ";	
    		if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline']))  echo ' selected="selected" ';
    		echo ">".$txt."</option>";
    	}
    	echo "</select>";
     
     
    	if (isset ($_POST['discipline']) {
     
    		$comite="select NUM_COMITE, NOM_COMITE FROM COMITE, LIGUE, FEDERATION, DISCIPLINE WHERE comite.num_ligue=ligue.num_ligue AND federation.num_federation=discipline.num_federation AND ligue.num_federation=federation.num_federation AND discipline.num_discipline=".$_POST['discipline'];
    		$reqcomite=mysql_query($comite)or die(mysql_error());
    		echo "<select name='comite' onchange='form.submit()'><option value=''>-- Selectionnez --</option>";
    		while ($row=mysql_fetch_array($reqcomite))
    		{
    			$txt=Tronquer_Texte($row["NOM_COMITE"], $longeur_max);
    			echo "<option value='".$row["NUM_COMITE"]."' ";
    			if(isset ($_POST['comite']) && ($row["NUM_COMITE"]==$_POST['comite']))  echo ' selected="selected" ';
    			echo ">".$txt."</option>";
    		}
    		echo "</select>";	
     
    		if (isset ($_POST['comite']) {
     
    			$club="select NUM_CLUB, NOM_CLUB FROM CLUB WHERE club.num_comite=".$_POST['comite'];
    			$reqclub=mysql_query($club)or die(mysql_error());
    			echo "<select name='club'><option value=''>-- Selectionnez --</option>";
    			while ($row=mysql_fetch_array($reqclub))
    			{
    				$txt=Tronquer_Texte($row["NOM_CLUB"], $longeur_max);
    				echo "<option value='".$row["NUM_COMITE"]."'>".$txt."</option>";				 					
    			}
    			echo "</select>";
    			echo "<input type='submit' value='Valider'>";
     		}
    	}
     
    //fermeture du formulaire
    echo "</form>";
     
    // Si encadrement, fonction et club existent et sont non vides
    if (isset ($_POST['encadrement'] , $_POST['fonction'] , $_POST['club']) && !empty($_POST['encadrement']) !empty($_POST['fonction']) !empty($_POST['club']) ) {
    
    									$sql="select NUM_CLUB, NUM_ENCADREMENT, NUM_FONCTION from ENCADRER_CLUB where NUM_CLUB=".$_POST['club']." AND NUM_ENCADREMENT= ".$_POST['encadrement']." AND NUM_FONCTION= " .$_POST['fonction'];
    									$query=mysql_query($sql);
    									$nbnum=mysql_num_rows($query);
    									
    									$reqclub="select NOM_CLUB from club where NUM_CLUB=".$_POST['club'];
    									$club=mysql_query($reqclub) or die (mysql_error());
    									$row=mysql_fetch_array($club);
    									if ($nbnum!=NULL)
    									{
    										echo "CLub <b>".$row['NOM_CLUB']."</b> déjà selectionné pour cette personne<br><br>";
    									}
    									else
    									{
    										$insert="insert into ENCADRER_CLUB values('".$_POST['encadrement']."','".$_POST['fonction']."','".$_POST['club']."')";
    $query=mysql_query($insert) or die ($insert.' : '.mysql_error());
    
    										echo "Insertion Réussie pour le comite <b>".$row['NOM_CLUB']."</b><br>";
    
    									}
    								}
    								else
    								{
    								echo "<b>ERREUR REQUETE</b>";
    								}
     
    }

  15. #55
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Le parse error vient d'une parenthèse manquante La ligne correcte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	if (isset ($_POST['discipline'])) {
    A première ton insert a l'air juste. De façon si ce n'est pas le cas, on va rapidement le savoir
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  16. #56
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    Ma liste de personne est juste un peu vide, mais ca avance

  17. #57
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Citation Envoyé par Lydie12
    Ma liste de personne est juste un peu vide, mais ca avance
    De quelle liste s'agit-il ? l'encadrement ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  18. #58
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    la seule qui est affiché, celle des personnes

  19. #59
    Débutant
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Points : 37
    Points
    37
    Par défaut
    Pourquoi la liste des personnes ne contient que

    --Selectionnez-- ??

  20. #60
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Qu'est-ce qu'il ya entre les balises <option> et </option> qui correspondent à cette liste ?

    Les autres listes sont remplies ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 13/04/2015, 11h17
  2. Réponses: 8
    Dernier message: 22/12/2014, 20h58
  3. Réponses: 6
    Dernier message: 02/06/2010, 09h40
  4. Présélectionner une valeur par défaut dans liste déroulante
    Par kate59 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 25/07/2009, 22h52
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo