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 :

garder une valeur listbox


Sujet :

Langage PHP

  1. #1
    Membre habitué

    Profil pro
    Pompier
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pompier

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Points : 171
    Points
    171
    Par défaut garder une valeur listbox
    bonjour, j'ai un formulaire avec 2 listbox alimentées grace à une base de donnée.

    1ere listbox: selection d'un centre
    -> bouton POST qui permet dans la 2ème listbox d'avoir le nom des agents de cette ville.

    Selection dans la 2ème liste de l'agent
    -> 2nd bouton pour afficher les infos sur l'agent

    Le souci, c'est que dans la 1ère liste, je perd la ville sélectionner, alors que je voudrais garder sélectionnée la ville.

    Merci pour votre aide.

    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
    <?php
     
    if (isset($_POST['creer'])){
    		echo ("le numero de la ville selectionnée est:".$_POST['ville'].""); 
    		$centreP=$_POST['ville'];}
    			else {$centreP=0; ;}
     
    // Requete Liste des centres
     
    	  $sqlcentre = "SELECT * FROM centre ORDER by centre" ;
     
    // Connexion base
        $cnx = odbc_connect( "DSN_disponibilite", "root", "" ) or die ("Impossible de se connecter à la base de donnée") ;
        //exécution de la requête:
        $requeteC = odbc_do($cnx, $sqlcentre) ;
     
    	// Requete Liste agents en fonction du centre selectionné.
     
    	  $sqlagent = "SELECT * FROM RH_personnel WHERE centre1=".$centreP." ORDER by nom " ;
     
    // Connexion base
        $cnx = odbc_connect( "DSN_disponibilite", "root", "" ) or die ("Impossible de se connecter à la base de donnée") ;
        //exécution de la requête:
        $requeteA = odbc_do($cnx, $sqlagent) ;
    	?>
     
     
    <body>
    <form id="form1" name="form1" method="post" action="centre_liste.php">
     
     
      <p>
        <select name="ville" id="ville" tabindex="300" onchange="recharge();" >
         <label for="ville">Centre</label>
          <?php	
    	 while( $resultC = odbc_fetch_object( $requeteC ) )
        { 
    	$centre=$resultC->centre;
    	$num=$resultC->num_centre;
        ?> 
          <option value="<?php echo $num; ?>" name"<?php echo $num ;?>"> <?php echo $centre; ?> </option>
          <?php
        } ?>
     
        </select> 
        <label for="matricule">Agent</label>
        <select name="matricule" id="matricule">
         <?php	
     
    	 while( $resultA = odbc_fetch_object( $requeteA ) )
        { 
    	$nom=$resultA->nom;
    	$prenom=$resultA->prenom;
    	$matricule=$resultA->matricule;
        ?> 
          <option value="<?php echo $matricule; ?>" name"<?php echo $matricule ;?>"> <?php echo $nom; ?>  -    <?php echo $prenom; ?></option>
          <?php
        } ?>
        </select>
        <br/><br/>
      <input type="submit" name="creer" id="OK" value="Valider" accesskey="13" tabindex="13" />        <input type="submit" name="agent" id="agent" value="Selection agent" accesskey="13" tabindex="13" /> 
     
    </form>
     
    <?php
    if (isset($_POST['agent'])){
    		echo ("le matricule de l'agent selectionné est:".$_POST['matricule'].""); 
    		}
    ?>

  2. #2
    Membre éprouvé Avatar de redoran
    Homme Profil pro
    Développeur-Amateur
    Inscrit en
    Juin 2010
    Messages
    1 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur-Amateur
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 346
    Points : 1 031
    Points
    1 031
    Par défaut
    Salam ; ton listbox est bizroide!!!
    si c'est une balise select:
    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
     
    <p>
    <label for="ville">Centre</label>
        <select name="ville" id="ville" tabindex="300" onchange="recharge();" >
     
          <?php	
    	 while( $resultC = odbc_fetch_object( $requeteC ) )
        { 
    	$centre=$resultC->centre;
    	$num=$resultC->num_centre;
        ?> 
          <option value="<?php echo $num; ?>" > <?php echo $centre; ?> </option>
          <?php
        } ?>
        </select>  
    </p>
    normalement listbox:
    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
     
    <p>
    <label for="ville">Centre</label>
        <select name="ville" id="ville" tabindex="300" size="8" multiple="multipleonchange="recharge();" > // size selon ton affichage d'items
     
          <?php	
    	 while( $resultC = odbc_fetch_object( $requeteC ) )
        { 
    	$centre=$resultC->centre;
    	$num=$resultC->num_centre;
        ?> 
          <option value="<?php echo $num; ?>" > <?php echo $centre; ?> </option>
          <?php
        } ?>
        </select>  
    </p>
    tabindex="300"

    en résumé s'il s'agit d'une balise select fait un tour http://www.developpez.net/forums/d12...balise-select/

  3. #3
    Membre expert Avatar de Fench
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Mai 2002
    Messages
    2 353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Groenland

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 353
    Points : 3 390
    Points
    3 390
    Par défaut
    Bonjour,

    En plus que Redoran a cité, je modifierais le bout du début
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['creer'])){
    		echo ("le numero de la ville selectionnée est:".$_POST['ville'].""); 
    		$centreP=$_POST['ville'];}
    			else {$centreP=0; ;}
    En:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (isset($_POST['creer'])){
        echo ("le numero de la ville selectionnée est: $_POST['ville']"); 
        $centreP=$_POST['ville']; }
    else { $centreP=0; }
    Ensuite pour garder la valeur dans la liste, il faut utiliser selected telle que:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <?php	
    while( $resultC = odbc_fetch_object( $requeteC ) ) { 
          $centre=$resultC->centre;
          $num=$resultC->num_centre;
          if( $centre == $centreP)
    ?> 
          <option value="<?php echo $num; ?>" selected="selected"> <?php echo $centre; ?> </option>
    <?php else ?>
          <option value="<?php echo $num; ?>" > <?php echo $centre; ?> </option>
    <?php    } ?>
    Meuuh en AI à l'INRA
    Domaines: {java, php, js, jquery}{hibernate, doctrine}{MyLib, symfony, Zend}
    fait gagner du temps à ceux qui aident , donc un message avec la balise résolu laisse plus de temps pour résoudre d'autres problèmes (balise à cliquer en bas de l'écran)

  4. #4
    Membre habitué

    Profil pro
    Pompier
    Inscrit en
    Janvier 2010
    Messages
    391
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Pompier

    Informations forums :
    Inscription : Janvier 2010
    Messages : 391
    Points : 171
    Points
    171
    Par défaut
    Merci à tous les deux pour votre aide.

    je mets mon code qui presente deux <select>

    on selectionne la ville dans le premier <select> -> submit
    la valeur de la ville est gardée en mémoire

    Et le deuxième <select> propose la liste de toutes les personnes de cette ville.
    -> submit2

    Les valeurs des deux <select> sont gardées et à chaque fois l'affichage par défault des <select> est la valeur sélectionnée.

    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
     
    <?php
     
    if ( (isset($_POST['creer'])) || (isset($_POST['agent'])) ) {
    		echo ("le numero de la ville selectionnée est:".$_POST['ville'].""); 
    		$centreP=$_POST['ville'];}
    			else {$centreP=300; ;}
     
    // Requete Liste des centres
     
    	  $sqlcentre = "SELECT * FROM centre ORDER by centre" ;
     
    // Connexion base
        $cnx = odbc_connect( "DSN_disponibilite", "root", "" ) or die ("Impossible de se connecter à la base de donnée") ;
        //exécution de la requête:
        $requeteC = odbc_do($cnx, $sqlcentre) ;
     
    	// Requete Liste agents en fonction du centre selectionné.
     
    	  $sqlagent = "SELECT * FROM RH_personnel WHERE centre1=".$centreP." ORDER by nom " ;
     
    // Connexion base
        $cnx = odbc_connect( "DSN_disponibilite", "root", "" ) or die ("Impossible de se connecter à la base de donnée") ;
        //exécution de la requête:
        $requeteA = odbc_do($cnx, $sqlagent) ;
    	?>
     
     
    <body>
    <form id="form1" name="form1" method="post" action="centre_liste.php">
     
     
      <p>
        <select name="ville" id="ville"  selected="300" >
         <label for="ville">Centre</label>
          <?php	
    	 while( $resultC = odbc_fetch_object( $requeteC ) )
        { 
    	$centre=$resultC->centre;
    	$num=$resultC->num_centre;
     
     
    	if ($num==$centreP){
        ?> 
        <option value="<?php echo $num; ?>" name"<?php echo $num ;?>" selected="selected"> <?php echo $centre; ?> </option>
        <?php ;}
    	else {?>
          <option value="<?php echo $num; ?>" name"<?php echo $num ;?>"> <?php echo $centre; ?> </option>
          <?php
    	}} ?>
     
        </select> 
        <label for="matricule">Agent</label>
        <select name="matricule" id="matricule">
         <?php	
    	 while( $resultA = odbc_fetch_object( $requeteA ) )
        { 
    	$nom=$resultA->nom;
    	$prenom=$resultA->prenom;
    	$matricule=$resultA->matricule;
     
    	if ($matricule==$_POST['matricule']){?>
          <option value="<?php echo $matricule; ?>" name"<?php echo $matricule ;?>" selected="selected"> <?php echo $nom; ?>  -    <?php echo $prenom; ?></option>
          <?php ;}
    	  else{ ?>
     
     
          <option value="<?php echo $matricule; ?>" name"<?php echo $matricule ;?>"> <?php echo $nom; ?>  -    <?php echo $prenom; ?></option>
          <?php
       ;} } ?>
        </select>
        <br/><br/>
      <input type="submit" name="creer" id="OK" value="Valider" accesskey="13" tabindex="13" />        <input type="submit" name="agent" id="agent" value="Selection agent" accesskey="13" tabindex="13" /> 
     
    </form>
     
    <?php
     
     
    if (isset($_POST['agent'])){
    		echo ("le matricule de l'agent selectionné est:".$_POST['matricule'].""); 
    		}
    ?>
     
    </body>
    </html>

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

Discussions similaires

  1. [MySQL] garder une valeur en memoire et la reutiliser par la suite
    Par stefon dans le forum PHP & Base de données
    Réponses: 11
    Dernier message: 13/12/2006, 14h00
  2. Réponses: 4
    Dernier message: 12/12/2006, 08h14
  3. Garder une valeur en mémoire
    Par Pitou5464 dans le forum Access
    Réponses: 4
    Dernier message: 08/09/2006, 19h06
  4. Garder une valeur d'un formulaire
    Par Shandler dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 11/07/2006, 09h52
  5. [C#] User Control, garder une valeur
    Par Oberown dans le forum ASP.NET
    Réponses: 9
    Dernier message: 06/03/2006, 15h41

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