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. #21
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Pour garder tes choix il faut que quand dans tes boucles tu arrive a l'option qui a été sélectionné précédemment tu rajoute l'attribut selected="selected" dans la balise option.

    Par contre je ne vois pas pourquoi le 3eme formulaire ne s'affiche pas.

  2. #22
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Pour faire à peu près ce que Asmodean suggère :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<option value='".$row["NUM_DISCIPLINE"]."'";
    echo (isset ($_POST['discipline']) && $row["NUM_DISCIPLINE"])? 'selected="selected"' : '';
    echo ">".$txt."</option>";
    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]

  3. #23
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Citation Envoyé par Celira
    Pour faire à peu près ce que Asmodean suggère :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<option value='".$row["NUM_DISCIPLINE"]."'";
    echo (isset ($_POST['discipline']) && $row["NUM_DISCIPLINE"])? 'selected="selected"' : '';
    echo ">".$txt."</option>";

    Ca marche pas, pour n'importe quelle ligne de discipline que je valide il me garde pas celui que je viens de valider, il m'affiche le dernier de la liste, alors que la liste des comités est la bonne. Et la derniere liste ne s'affiche pas POURQUOI ??

  4. #24
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    euh... oui j'ai oubié un 'tit bout du code Telle que je l'ai écrite, la condition est toujours vraie. Donc à chaque tour de boucle, il sélectionne l'option qu'il vient d'écrire. Donc à la fin de la boucle, c'est la dernière ligne qui est sélectionnée.
    Là ça devrait être mieux !
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    echo "<option value='".$row["NUM_DISCIPLINE"]."'";
    echo (isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline']))? ' selected="selected" ' : '';
    echo ">".$txt."</option>";
    si tu veux la version développée (sans l'expression ternaire ? les 2 font la même chose
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    echo "<option value='".$row["NUM_DISCIPLINE"]."'";
    if(isset ($_POST['discipline']) && ($row["NUM_DISCIPLINE"]==$_POST['discipline'])) {
     echo ' selected="selected" ';
    }
    echo ">".$txt."</option>";
    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]

  5. #25
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Merci, ca marche. Mais qu'est-ce que j'ai si mal codé pour ne pas avoir la troisième liste ?

  6. #26
    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 : 40
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Aucune idée. Si je le savais, je te l'aurais déjà dit
    Rajoute un echo juste après chaque if, histoire de voir où ça ne va pas.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    if(isset($_POST['comite']))
    {
    echo " post comite existe ";
    	if ($_POST['comite']!=NULL)
    	{
    echo "post comite non vide";

    Pour avoir dans la 2e liste le même type de sélection que tu as dans la première, il faut adapter le code que je t'ai donné en remplaçant discipline par comite et num_discipline par num_comite.
    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]

  7. #27
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Et pour mes listes c'est bon ca marche

    Meme ca ca marche pas our la troisieme liste, je n'ai rien qui est affiché nulle part. Bizarre!!

  8. #28
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Et si juste avant if(isset($_POST['comite'])) tu mets :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    echo "<pre>";
    print_r($_POST);
    echo "</pre>";
    Ca donne quoi quand tu arrives sur la page après avoir validé le deuxième formulaire?

  9. #29
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Avant que je valide le comite ca m'affiche ca :

    Array
    (
    [discipline] => 51
    [submit] => Valider Resultat
    )


    Quand j'ai validé le comité j'ai plus rien. Juste la 1 ere liste à l'écran

  10. #30
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Ha ben oui c'est normal... Il faut donc que tu mettes un input hidden dans ton deuxième formulaire :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<input type="hidden" name="discipline" value="' .$_POST['discipline']. '">';
    Parce que ton if( comite ) est dans le if( discipline ).

    Et d'ailleurs j'imagine qu'après ces 2 formulaire tu souhaiterais traité tes infos...donc il faudra surement que dans le 3eme formulaire tu mette discipline et comite en hidden comme pour le deuxieme.

  11. #31
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    YESSSSS c'est bon ca marche.

    Merci c'est bon c'était juste ca.


    Petite question, j'espère que ce sera la dernière

    J'ai un table encadrement avec nom et prénom

    Je veux afficher le nom et le prénom de la personne dans ma liste déroulante, je fais comment ?

  12. #32
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    quelque chose comme :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option value="...">'.$nom.' '.$prenom.'</option>'

  13. #33
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Pourquoi j'ai rien dans ma liste de personnes ?

    sachant que dans ma requete $reqmwt j'ai mis NUM_ENCADREMENT, meme si je ne veux pas l'afficher

    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
    <?
    //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);
    						echo "<select name='encadrement'><option value=''>-- Selectionnez --</option>";
    						while ($row=mysql_fetch_array($sqll))
    			{
    				$sqlll="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from encadrement";
    				$query=mysql_query($sqlll);
    				$rown=mysql_fetch_array($query);
    				$nom=strtoupper($rown["NOM_ENCADREMENT"]);
    				$prenom=strtolower($rown["PRENOM_ENCADREMENT"]);
    				$prenom=ucfirst($prenom);
    				echo "<option value=' '>".$nom."&nbsp;&nbsp;".$prenom."</option>";						
    			}
    						echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    						echo "</form>";
     
     
    ?>

  14. #34
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Pense a mettre les or die( mysql_error() ) derrière tout tes mysql_query pour savoir quand tu fais des erreurs.

  15. #35
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Ca c'est le bout de code qui doit bugger. J'ai rajouter les 2 or die(mysql_error()) et il m'affiche rien

    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
    <?
    //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($sqll))
    			{
    				$sqlll="select NOM_ENCADREMENT, PRENOM_ENCADREMENT, NUM_ENCADREMENT from encadrement";
    				$query=mysql_query($sqlll)or die( mysql_error() );
    				$rown=mysql_fetch_array($query);
    				$nom=strtoupper($rown["NOM_ENCADREMENT"]);
    				$prenom=strtolower($rown["PRENOM_ENCADREMENT"]);
    				$prenom=ucfirst($prenom);
    				echo "<option value=''>".$nom."&nbsp;&nbsp;".$prenom."</option>";						
    			}
    						echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    						echo "</form>";
     
     
    ?>

  16. #36
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Ca n'affiche rien ou la liste déroulante est vide?

    Et pourquoi tu refais unre requête dans ta boucle quasiment identique a la première?

  17. #37
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    La liste déroulante est vide. Quand j'ai dis ca affiche rien c'était pour les messages d'erreur

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

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    A mon avis tu n'a pas besoin de la deuxieme requête...

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    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>";						
    }

    ca devrait suffir ça nan?

    EDIT : Attention a bien utilis $mvt dans la boucle while

  19. #39
    Membre confirmé
    Technicien maintenance
    Inscrit en
    Mai 2007
    Messages
    123
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Mai 2007
    Messages : 123
    Par défaut
    Chaque fois, ca marche je modifie un truc et re message d'erreur

    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
    <? require "Includes/fonctions.php"; ?>
    
    <br><hr width="100%"><br><div class="titre">Selectionnez la personne</div><br><br>
    
    <?
    	//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>";
    ?>
    
    <?
    	$longeur_max=60;
    	//premier formulaire : choix de la discipline
    	//liste des fédérations
    	echo "<form name='formdiscipline' method='post' action=''>";
    	echo "<br><br><br>";
    	$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"]."'";
    		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>";
    						
    	if (isset($_POST['discipline']))
    	{
    		if ($_POST['discipline']!=NULL)
    		{
    			echo "<form name='formcomite' method='post' action=''>";
    			echo "<br><br><br>";
    			$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"]."'";
    				if(isset ($_POST['comite']) && ($row["NUM_COMITE"]==$_POST['comite'])) 
    				{
    					echo ' selected="selected" ';
    				}
    				echo ">".$txt."</option>";
    			}
    			echo "</select><br><br>";
    			echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    			echo '<input type="hidden" name="discipline" value="' .$_POST['discipline']. '">'; 
    			echo "</form>";
    
    			if(isset($_POST['comite']))
    			{
    				if ($_POST['comite']!=NULL)
    				{
    					echo "<form name='formclub' method='post' action=''>";
    					$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><br><br>";
    					echo "<input type='submit' name='submit' value='Valider Resultat' class='bouton'>";
    					echo '<input type="hidden" name="discipline" value="' .$_POST['discipline']. '">'; 
    					echo "</form>";
    				}
    			}
    		}
    	}
    ?>

    Ligne 10 (la ligne en rouge gras...) J'ai un message d'erreur :

    Parse error: parse error in h:\site intranet\drdjs\ajout\affectation_encadrement_club.php on line 10

  20. #40
    Membre chevronné Avatar de Asmodean
    Profil pro
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Tu as oublié le ; a la ligne juste au dessus

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 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