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 :

[PHP-JS] Récupérer la sélection d'une liste déroulante


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 68
    Points
    68
    Par défaut [PHP-JS] Récupérer la sélection d'une liste déroulante
    Bonjour, c'est encore moi avec mon projet sur la gestion de planning.

    Voila donc en fait je génère une liste déroulante avec un CHECKED, et j'aimerais récupérer au final la valeur de ce qui a été sélectionné (pas forcément la valeur du CHECKED) dans le tableau 2D $edt.

    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
    for($i=0 ; $i<7 ; $i++)
    {
       echo"	
       <td id=td_p><select name='horaire'>";
     
       $query2 = "SELECT plage_horaire FROM horaires";
       $result2 = mysql_query($query2);
     
       while($row=mysql_fetch_object($result2))
       {
          $horaire = $row->plage_horaire;
          if($horaire == 'Repos')
          {
             echo"
             <option selected>$horaire</option>";
             pl_horaire($horaire);
          }
       }
     
       echo"
       </select></td>";
     
       $edt[$tabnom[$j-1]][$i] = $horaire;		
    }
    Merci d'avance pour votre aide.

  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Heu, je saisi pas bien.

    dans ton code, tu recevras automatiquement la dernière valeur retourner par ta boucle.

    Le dernier passage donneras la valeur $horraire.

    si tu veux récupérer sur ce dont on clique il faut envoyer la donnée autrement.

    soit par post soit par javascript.

    donc dans un autre fichier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $edt[$tabnom[$j-1]][$i] = $_POST[horaire];

  3. #3
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 68
    Points
    68
    Par défaut
    En récupérant dans un autre fichier la valeur de $_POST['horaire'] sa m'affiche seulement la dernière horaire du tableau.

    Il faudrait que je renomme mes <select name=...>.

    Comment faire pour avoir un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name='horaire[$nom][$i]'>
    Je pourrais ainsi récupérer les valeur de chaque case du tableau.

  4. #4
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    je ferais plutôt ceci

    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
     
    for($i=0 ; $i<7 ; $i++) 
    { 
    echo" <td id=td_p><select name='horaire'>"; 
    $query2 = "SELECT plage_horaire FROM horaires"; 
    $result2 = mysql_query($query2); 
    while($row=mysql_fetch_object($result2))  
    { 
     $horaire = $row->plage_horaire; 
    if($horaire == 'Repos')  
    { 
     echo" <option selected>$horaire</option>"; 
    pl_horaire($horaire); 
    }
    else
    {
     echo" <option>$horaire</option>"; 
    }  
    }  echo" 
    </select></td>"; 
    $edt[$tabnom[$j-1]][$i] = $horaire; }

  5. #5
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 68
    Points
    68
    Par défaut
    En fait c'est la solution que j'ai au début du topic.

    Le else ne sert à rien puisque c'est la fonction plage_horaire($horaire) qui me renvoi toutes les autres plages horaires.

    Avec cette solution, je ne récupère que ce qui est préselectionné. Je voudrais récupérer un autre choix que l'utilisateur pourrait faire.

  6. #6
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    fais voir le code pl_horaire($horaire);

  7. #7
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 68
    Points
    68
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function pl_horaire($h)
    {
    	$query = "SELECT plage_horaire FROM horaires WHERE (plage_horaire!='$h')";
    	$result = mysql_query($query);
     
    	while($row=mysql_fetch_object($result))
    	{
    		$ph = $row->plage_horaire;
    		echo "
    			<option>$ph</option>";
    	}
    }
    Euh en fait maintenant j'arrive à récupérer les valeur sélectionnées.

    En faisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name='horaire[$nom][i]'>
    Je n'ai pas d'erreur de syntaxe.

    Mais lorsque je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <select name='horaire[$tabnom[$j-1]][$i]'>
    Sa me met une erreur de syntaxe sur le fichier où je veux afficher la valeur.

    On dirait que sa n'accepte pas les tableaux à 2 dimensions avec un argument d'une dimension qui est lui meme un tableau.

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    tu n'affiches donc que les valeurs ayant "Repos" en argument?

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 68
    Points
    68
    Par défaut
    Non sa doit tout m'afficher.

    Je te remets le code complet.

    Page add_plannign.php avec génération des listes déroulantes :
    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
    //requete pour trouver tous les employés en 3x8
    	$query1 = "SELECT nom, prenom FROM employes WHERE actif='o' AND statut='3x8'";
    	//exécution de la requete
    	$result1 = mysql_query($query1);
     
    	while ($row=mysql_fetch_object($result1))
    	{	
    		$nom = $row->nom;
    		$prenom = $row->prenom;
     
    		$tabnom[$j] = $nom." ".$prenom;
    		$j++;
     
    		echo"
    			<tr>
    				<td id=td_p><center>$nom $prenom</center></td>";
     
    		switch($nom)
    		{
    			case 'Forestie' : $base = $baseForestie; break;
    			case 'Gayraud' : $base = $baseGayraud; break;
    			case 'Hennebelle' : $base = $baseHennebelle; break;
    			case 'Hugues' : $base = $baseHugues; break;
    			case 'Pedone' : $base = $basePedone; break;
    			case 'Pujol' : $base = $basePujol; break;
    			case 'Lavabre' : $base = $baseLavabre; break;
    			case 'Romera' : $base = $baseRomera; break;
    			case 'Saint-Léger' : $base = $baseSl; break;
    			case 'Marion' : $base = $baseMarion;
    		}
     
    		for($i=0 ; $i<7 ; $i++)
    		{
    			$nb = nbjours($jour[$i],$base);
     
    			switch ($nb)
    			{
    				case (($nb%10 == 0) || ($nb%10 == 1)) : $horaire = '5h-13h'; break;
    				case (($nb%10 == 2) || ($nb%10 == 3)) : $horaire = '13h-21h'; break;
    				case (($nb%10 == 4) || ($nb%10 == 5)) : $horaire = '21h-5h'; break;
    				default : $horaire = 'Repos';
    			}
     
    			echo"	
    			<td id=td_p><select name='horaire[$tabnom[$j-1]][$i]'>";
     
    			if($horaire == '5h-13h')
    			{
    				echo"
    				<option selected>$horaire</option>";
    				pl_horaire($horaire);
    			}
    			else if($horaire == '13h-21h')
    			{
    				echo"
    				<option selected>$horaire</option>";
    				pl_horaire($horaire);
    			}
    			else if($horaire == '21h-5h')
    			{
    				echo"
    				<option selected>$horaire</option>";
    				pl_horaire($horaire);
    			}
    			else
    			{
    				echo"
    				<option selected>$horaire</option>";
    				pl_horaire($horaire);
    			}
    		}
     
    		echo"
    		</select></td></tr>";
    	}
    Page apercu.php :
    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
    $horaire = $_POST['horaire'];
     
    	$jour = $_SESSION['jour'];
     
    	echo "<table id=table>
    			<tr>
    				<td id=td_p><center></center></td>
    				<td id=td_p><center>Lundi</center></td>
    				<td id=td_p><center>Mardi</center></td>
    				<td id=td_p><center>Mercredi</center></td>
    				<td id=td_p><center>Jeudi</center></td>
    				<td id=td_p><center>Vendredi</center></td>
    				<td id=td_p><center>Samedi</center></td>
    				<td id=td_p><center>Dimanche</center></td>
    			</tr>
    			<tr>
    				<td id=td_p><center></center></td>
    				<td id=td_p><center>".$jour[0]."</center></td>
    				<td id=td_p><center>".$jour[1]."</center></td>
    				<td id=td_p><center>".$jour[2]."</center></td>
    				<td id=td_p><center>".$jour[3]."</center></td>
    				<td id=td_p><center>".$jour[4]."</center></td>
    				<td id=td_p><center>".$jour[5]."</center></td>
    				<td id=td_p><center>".$jour[6]."</center></td>
    			</tr>";
    	for($i=0 ; $i<sizeof($_SESSION['tab']) ; $i++)
    	{
    		$nom = $_SESSION['tab'][$i];
    		echo "
    			<tr>
    				<td id=td_p><center>$nom</center></td>";
    				for($j=0 ; $j<7 ; $j++)
    				{
    					echo "
    					<td id=td_p><center>".$horaire[$nom][$j]."</center></td>";
    				}					
    		echo "
    			</tr>";
    	}

  10. #10
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    pour le add_planing tu as une erreur de cote et double cote.

    dans le doute remplace par ceci

    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
     
    <?php
    //requete pour trouver tous les employés en 3x8  
    $query1 = "SELECT nom, prenom FROM employes WHERE actif='o' AND statut='3x8'";
    //exécution de la requete  
    $result1 = mysql_query($query1); 
    while ($row=mysql_fetch_object($result1))  
    { 
    	$nom = $row->nom; 
    	$prenom = $row->prenom; 
    	$tabnom[$j] = $nom." ".$prenom; $j++; 
    	echo" <tr>  <td id=td_p><center>$nom $prenom</center></td>"; 
    	switch($nom)  
    	{  
    		case 'Forestie' : $base = $baseForestie; 
    		break; 
    		case 'Gayraud' : $base = $baseGayraud; 
    		break; 
    		case 'Hennebelle' : $base = $baseHennebelle; 
    		break; 
    		case 'Hugues' : $base = $baseHugues; 
    		break; 
    		case 'Pedone' : $base = $basePedone; 
    		break; 
    		case 'Pujol' : $base = $basePujol; 
    		break; 
    		case 'Lavabre' : $base = $baseLavabre; 
    		break; 
    		case 'Romera' : $base = $baseRomera; 
    		break; 
    		case 'Saint-Léger' : $base = $baseSl; 
    		break; 
    		case 'Marion' : $base = $baseMarion; 
    	}  
    	for($i=0 ; $i<7 ; $i++)  
    	{  
    		$nb = nbjours($jour[$i],$base);   
    		switch ($nb)  
    		{  
    			case (($nb%10 == 0) || ($nb%10 == 1)) : $horaire = '5h-13h'; 
    			break; 
    			case (($nb%10 == 2) || ($nb%10 == 3)) : $horaire = '13h-21h'; 
    			break; 
    			case (($nb%10 == 4) || ($nb%10 == 5)) : $horaire = '21h-5h'; 
    			break; 
    			default : $horaire = 'Repos'; 
    		}
    		?>  
    		<td id=td_p><select name="horaire[<?php echo $tabnom[$j-1]?>][<?php echo $i?>]">;   
    		<?php
    		if($horaire == '5h-13h')  
    		{  
    			echo" <option selected>$horaire</option>"; 
    			pl_horaire($horaire); 
    		}  
    		else if($horaire == '13h-21h')  
    		{  
    			echo" <option selected>$horaire</option>"; 
    			pl_horaire($horaire); 
    		}  
    		else if($horaire == '21h-5h')  
    		{  
    			echo" <option selected>$horaire</option>"; 
    			pl_horaire($horaire); 
    		}  
    		else  
    		{  
    			echo" <option selected>$horaire</option>"; 
    			pl_horaire($horaire); 
    		}  
    	}  
    	echo" </select></td></tr>"; }
    ?>

  11. #11
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 68
    Points
    68
    Par défaut
    Franchement, je ne sais pas comment te remercier. J'ai passé trop de temps pour cette affichage, et toi il t'aura fallu comprendre ce que je voulais faire pour ensuite me donner la solution.

    Maintenant sa fonctionne nickel, plus d'erreur de syntaxe.

    Merci encore.

    A une prochaine fois pour une autre question !!!

  12. #12
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 497
    Points : 12 599
    Points
    12 599
    Par défaut
    Un conseil pour ne plus avoir ce genre de problème.

    Sépare au maximum le code html du code php.

    C'est un peu plus long (et encore ), mais cela évite pas mal de soucis.

    Bonne journée à toi

    MaitrePylos

  13. #13
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Mars 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2006
    Messages : 70
    Points : 68
    Points
    68
    Par défaut
    Ok, merci du conseil et à bientôt.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Récupérer la sélection d'une List
    Par miya dans le forum Flex
    Réponses: 2
    Dernier message: 26/06/2009, 10h09
  2. Réponses: 11
    Dernier message: 26/04/2007, 10h40
  3. Réponses: 17
    Dernier message: 12/07/2006, 22h04
  4. Réponses: 5
    Dernier message: 27/05/2005, 17h10
  5. Récupérer un objet d'une liste déroulante
    Par Hell dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/01/2005, 14h59

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