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

Langage PHP Discussion :

[php5] menu déroulant : 2 dans un fichier


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 159
    Points : 58
    Points
    58
    Par défaut [php5] menu déroulant : 2 dans un fichier
    Bonjour,

    dans un meme fichier, j'ai deux menu déroulant.
    Dans le premier, quand je clique sur une valeur, cela fait apparaitre un tableau. Pour celui ci pas de pb.
    Le deuxième fait parti d'un de ces tableaux, et je voudrais que quand je clique sur une valeur, elle reste affichée et que je puisse récup la valeur.

    Pour mieux comprendre, voici mon code :
    le premier menu :
    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
     
    <td width="197">
          			<form id="form1" name="form1" method="post" action="">
          			  <strong>
    				  	<label><em>Opérations :</em></label>
    				  </strong>
    				  <select name="selectOp" onchange="document.form1.submit();">
    				  	<option>S&eacute;lectionnez</option>
    				    <option VALUE="activite">Liste activit&eacute;s</option>
    				    <option VALUE="cumul">cumul</option>
    				    <option VALUE="S1">S1</option>
    				    <option VALUE="S2">S2</option>
    				    <option VALUE="S3">S3</option>
    				    <option VALUE="S4">S4</option>
    				    <option VALUE="S5">S5</option>
    				    <option VALUE="S6">S6</option>
    				    <option VALUE="S7">S7</option>
    				    <option VALUE="S8">S8</option>
    				    <option VALUE="S9">S9</option>
    				    <option VALUE="S10">S10</option>
    				    <option VALUE="S11">S11</option>
    				    <option VALUE="S12">S12</option>
    				    <option VALUE="S13">S13</option>
    				    <option VALUE="S14">S14</option>
    				    <option VALUE="S15">S15</option>
    				    <option VALUE="S16">S16</option>
    				    <option VALUE="S17">S17</option>
    				    <option VALUE="S18">S18</option>
    				    <option VALUE="S19">S19</option>
    				    <option VALUE="S20">S20</option>
    				    <option VALUE="S21">S21</option>
    				    <option VALUE="S22">S22</option>
    				    <option VALUE="S23">S23</option>
    				    <option VALUE="S24">S24</option>
    				    <option VALUE="S25">S25</option>
    				    <option VALUE="S26">S26</option>
    				    <option VALUE="S27">S27</option>
    				    <option VALUE="S28">S28</option>
    				    <option VALUE="S29">S29</option>
    				    <option VALUE="S30">S30</option>
    				    <option VALUE="S31">S31</option>
    				    <option VALUE="S32">S32</option>
    				    <option VALUE="S33">S33</option>
    				    <option VALUE="S34">S34</option>
    				    <option VALUE="S35">S35</option>
    				    <option VALUE="S36">S36</option>
    				    <option VALUE="S37">S37</option>
    				    <option VALUE="S38">S38</option>
    				    <option VALUE="S39">S39</option>
    				    <option VALUE="S40">S40</option>
    				    <option VALUE="S41">S41</option>
    				    <option VALUE="S42">S42</option>
    				    <option VALUE="S43">S43</option>
    				    <option VALUE="S44">S44</option>
    				    <option VALUE="S45">S45</option>
    				    <option VALUE="S46">S46</option>
    				    <option VALUE="S47">S47</option>
    				    <option VALUE="S48">S48</option>
    				    <option VALUE="S49">S49</option>
    				    <option VALUE="S50">S50</option>
    				    <option VALUE="S51">S51</option>
    				    <option VALUE="S52">S52</option>
    				  </select>
    				</form>
    			</td>
    			<!--traitement suivant le choix dans la liste-->
    			<?php 
    				//verifie que la variable n est pas vide
    				if (isset($_POST['selectOp'])){
      					$ACTION=$_POST['selectOp'];
    					//si selection activte
    					if ($ACTION == 'activite'){
    le deuxième menu se trouve dans le ELSE du "if ($ACTION == 'activite')" :
    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
     
    //affichage du titre du travail en cours
    			    		echo '<td width="559">';
    			    			echo '<div align="center">';
    			      				echo "<h2>Reporting Hebdomadaire : " . $ACTION . "</h2>";
    	    					echo '</div>';
    	    				echo '</td>';
    	    				//fin tableau liste deroulante+titre
    	  					echo '</tr>';
    						echo '</table>';
    						//afficher le tableau des semaines
    						echo '<table border="2">';
    						  //affichage de la ligne du titre temps
    						  echo '<tr>';
    						    echo '<td COLSPAN=5 rowspan="2">&nbsp;</td>';
    						    echo '<td COLSPAN=6 align="center">Temps</td>';
    						  echo '</tr>';
    						  //affichage de la ligne des dates
    						  echo '<tr>';
    						    echo '<td>07-mai</td>';
    						    echo '<td>08-mai</td>';
    						    echo '<td>09-mai</td>';
    						    echo '<td>10-mai</td>';
    						    echo '<td>11-mai</td>';
    						    echo '<td>s19</td>';
    						  echo '</tr>';
    						  //affichage de la ligne des projets
    						  echo '<tr>';
    						    echo '<td>Projets</td>';
    						    echo '<td>Type (P/SP) </td>';
    						    echo "<td>Etat d'avancement du projet </td>";
    						    echo '<td>Statut</td>';
    						    echo '<td>Prochaines actions </td>';
    						    //affichage cumul heure journée
    						    echo '<td>&nbsp;</td>';
    						    echo '<td>&nbsp;</td>';
    							echo '<td>&nbsp;</td>';
    						    echo '<td>&nbsp;</td>';
    						    echo '<td>&nbsp;</td>';
    						    //affichage cumul heure projets
    							echo '<td>&nbsp;</td>';
    						  echo '</tr>';
    						  echo '<tr>';
    						    //requete pour recuperer les projets
    				   		   $query = "SELECT projet.libelle, projet.idActivite FROM role,projet WHERE role.idActivite=projet.idActivite and role.idPersonne =" . $_SESSION['id_personne'];
    						   //resultat de la requete sous format texte
    						   $result = mysql_query($query, $link) or die($query . " - " . mysql_error());
    						   //creation liste deroulante sur non projet
    						   echo "<td>";
    						   echo '<form id="form2" name="form2" method="post" action="">';
    						   echo '<select name="selectAct">';
    						   	echo '<option>&nbsp;</option>';				   
    						   	//creation d un tableau de la requete + boucle pour afficher dans tableau
    						    while ($rowP = mysql_fetch_array($result)) {	
    								    $PROJET=$rowP['libelle'];
    								    $PROJETID=$rowP['idActivite'];
    								    echo '<option VALUE="$PROJETID">'.$PROJET.'</option>';
    						    }	
    						   echo '</select>';
    						   echo '</form>';
    						   echo "</td>";
    						   echo "avant";
    						   if (isset($_POST['selectAct'])){
          							echo "justeapres";
          							$ACTIVITE=$_POST['selectAct'];
          							echo "desuiteapres";
    								echo $ACTIVITE;
          						}
          						else {
          							echo "non";
          						}

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 159
    Points : 58
    Points
    58
    Par défaut
    j'avait oublié de vous dire mon pb. Alors je n'arrive pas récupérer la valeur du dexième menu !!!

  3. #3
    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
    Salut
    Effectivment c'est mieux avec le problème

    J'ai trouvé un problème de quote ' et " et d'interprétation de variables.
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option VALUE="$PROJETID">'.$PROJET.'</option>';
    à remplacer par
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<option VALUE="'.$PROJETID.'">'.$PROJET.'</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]

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 159
    Points : 58
    Points
    58
    Par défaut
    je viens de faire le modif mais c toujours pareil!!!

    dans le deuxième menu, quand je clique sur un element de la liste, on dirait que ca fait rien.
    Il faut savoir que je veux que quand je clique sur un element, celui ci reste affiché, je recup sa valeur et aucun autre traitement et fait. D'ou je n'ai pas mis de "Onchange" dans le "select" du menu. faut il quand meme en mettre un si oui avec quel donnée ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    159
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 159
    Points : 58
    Points
    58
    Par défaut
    autre précision, pour récup la valeur du premier menu, j'utilise la variable "$_POST".
    Je voulais faire la meme chose pour le deuxième menu mais on dirait que elle s'utilise une fois, alors comment faire ??

  6. #6
    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
    Effectivement il manque un petit quelque chose... Si tu ne soumets pas ton formulaire d'une façon ou d'une autre, la valeur dans la liste selectAct n'est pas récupérée.
    Le problème c'est que si tu mets un onchange=form2.submit dans ton selectAct, il va te perdre la valeur de ton premier formulaire... a moins de la passer par un champ caché ou quelque chose du même genre.

    ce que je peux te proposer c'est quelque chose comme ça :
    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
    echo '<form id="form2" name="form2" method="post" action="">';
    // on soumet le formulaire lors d'un changement dnas la liste
       echo '<select name="selectAct" onchange="document.form2.submit();">';
    	echo '<option>&nbsp;</option>';				   
       	//creation d un tableau de la requete + boucle pour afficher dans tableau
    	while ($rowP = mysql_fetch_array($result)) {	
    	    $PROJET=$rowP['libelle'];
    	    $PROJETID=$rowP['idActivite'];
    	    echo '<option VALUE="'.$PROJETID.'">'.$PROJET.'</option>';
    	}	
       echo '</select>';
    // on revoie la valeur de selectOp pour ne pas la perdre
       echo '<input type="hidden" name="selectOp" value="'.$_POST['selectOp'].'">';
    echo '</form>'
    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]

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/02/2012, 16h28
  2. Lister fichiers et sous répertoire dans un menu déroulant
    Par WeDgEMasTeR dans le forum Langage
    Réponses: 8
    Dernier message: 23/05/2008, 16h48
  3. menu déroulant combobox dans une userform
    Par NicolasMO dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 25/07/2007, 18h44
  4. [php5] menu déroulant : détecter un chagement
    Par fanette dans le forum Langage
    Réponses: 3
    Dernier message: 29/05/2007, 09h51
  5. Menu déroulant+longueur dans la fenêtre
    Par DelphLaga dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 13/09/2006, 09h09

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