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 :

Options Selected sur SELECT


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut Options Selected sur SELECT
    Bonjour,
    j'ai un petit soucis de gestion dans une gestion administrative d'un site Internet.

    J'ai une liste de clients avec différentes données (NOM, PRENOM, etc...)

    Ce que j'aimerai c'est que quand je modifie un client, j'ai son nom, prénom etc... puis la liste des affiliations. Donc j'ai une liste déroulante qui m'affiche toute les affiliations mais j'aimerais faire pour que il pointe d'origine sur l'affiliation qu'il a enregistré sur la BD.

    Exemple j'ai 4 affiliations: Suisse / France / Italie / Belgique

    J'ai un client: Frutix --> Suisse

    Quand je clique sur Modifier, j'aimerais avoir ma liste déroulante avec toutes mes affiliations mais la première (OPTION SELECTED) est Suisse!

    Voici la partie de mon formulaire sans l'option selected.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <select name="for_affiliates">
    <?php do { ?>
    <option value="<?php echo $ligne_affiliates->pk_affiliates; ?>"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
    </option>
    <?php } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
    </select>
    Merci de m'aider... A++

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Tu en as trop dit ou pas assez...

    Personnellement je n'ai pas cerné ton problème.
    Tu possèdes plusieurs listes déroulantes dont les données dépendent en cascade ?
    Tu voudrais rafraichir les données une fois une liste sélectionnée ?
    Tu voudrais garder les données quand tu postes le formulaire ?

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Je comprends pas trop le code, un peu d'explication sur tes variables serait un plus.
    De ce que j'ai compris, tu affiches dans ton premier "option" l'affiliation choisie ensuite tu déroules toutes les autres options, c'est bien ca?
    Si c'est ca alors:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <option value="<?php echo $ligne_affiliates->pk_affiliates; ?> selected"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
    </option>
    devrait suffire.

    Sinon la méthodologie que j'tutilise est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $affiliation_de_ma_personne=$ladonneaffiliationdecettepersonne.
    foreach($liste_des_affiliations as $une affiliation){
      if($une_affiliation==$affiliation_de_ma_personne){
        echo '<option value="$une_affiliation" selected>Nom option</option>';
    }else
    {
    echo '<option value="$une_affiliation" >Nom option</option>';
    }
    }

  4. #4
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut
    Ah, un de mes nombreux problèmes... Essayer de me faire comprendre!



    Dans la Base de donnée, Jacques Chirac a comme affiliates (FRANCE)!

    Donc ce que j'aimerais c'est qu'il affiche France et qu'ensuite quand on clique sur la liste déroulante, ça affiche cela:



    Est-ce que je suis plus clari?

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    J'apprécie l'effort
    Mais je parlais surtout du role de tes variables et pas de la problématique que je pensais avoir saisi (tu peux relire mon post).

    Peut etre que par exemple si tu me disais ce que fais cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?php echo $ligne_affiliates->pk_affiliates; ?>"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
    Je pourrai t'aider plus.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 104
    Points : 115
    Points
    115
    Par défaut
    Je pense avoir compris ton problème.

    Tu devrais faire une requête juste avant ton <SELECT name=""> où tu vas chercher dans ta base le pays d'affiliation.

    Et en fonction de ca, tu places ton selected dans le <option> correspondant.

    Ca va te faire beaucoup de if{}else{} mais c'est une solution simple.

  7. #7
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Raideman
    J'apprécie l'effort
    Mais je parlais surtout du role de tes variables et pas de la problématique que je pensais avoir saisi (tu peux relire mon post).

    Peut etre que par exemple si tu me disais ce que fais cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="<?php echo $ligne_affiliates->pk_affiliates; ?>"><?php echo $ligne_affiliates->description_affiliates; ?> / <?php echo $ligne_affiliates->name_regions; ?>
    Je pourrai t'aider plus.
    Excuse-moi je répondais au premier message...
    Je suis en train d'essayer ta soluce avec le foreach(que j'essaye de comprendr)

    Mes variables:
    $ligne_affiliates->pk_affiliates : ID d'un champ Affiliates
    $ligne_affiliates->description_affiliates : Nom d'un champ Affilaiites
    $ligne_affiliates->name_regions: Nom d'un champ de la table Régions (Associé à Affiliates)
    $ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates): Utile pour la fin de ma boucle DO

    j'espère avoir été plus précis

  8. #8
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 138
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 138
    Points : 1 504
    Points
    1 504
    Par défaut
    Ok j'ai compris.
    Ce qu'il faudrait faire en fait, c'est deja recupere le pk_affiliates de la personne qeu tu modifies.

    Imaginons que tu aies l'id de l'affiliate de la personne dans la variable $id_aff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select name="for_affiliates">
    <?php
     do { 
    if($id_aff==$ligne_affiliates->pk_affiliates){
    echo '<option value="'.$ligne_affiliates->pk_affiliates.'" selected>'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
     
    }
    else
    {
    echo '<option value="'.$ligne_affiliates->pk_affiliates.'">'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
    }
     } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
    </select>

  9. #9
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Raideman
    Ok j'ai compris.
    Ce qu'il faudrait faire en fait, c'est deja recupere le pk_affiliates de la personne qeu tu modifies.

    Imaginons que tu aies l'id de l'affiliate de la personne dans la variable $id_aff

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <select name="for_affiliates">
    <?php
     do { 
    if($id_aff==$ligne_affiliates->pk_affiliates){
    echo '<option value="'.$ligne_affiliates->pk_affiliates.'" selected>'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
     
    }
    else
    {
    echo '<option value="'.$ligne_affiliates->pk_affiliates.'">'.$ligne_affiliates->description_affiliates.' /'.$ligne_affiliates->name_regions.'</option>';
    }
     } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
    </select>
    Alors cette solution ne fonctionne pas...
    Pourtant j'ai modifié $id_aff en --> fk_affiliates_customers ce qui est d'après ton explication le champ correspondant...

  10. #10
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par Cemos
    Je pense avoir compris ton problème.

    Tu devrais faire une requête juste avant ton <SELECT name=""> où tu vas chercher dans ta base le pays d'affiliation.

    Et en fonction de ca, tu places ton selected dans le <option> correspondant.

    Ca va te faire beaucoup de if{}else{} mais c'est une solution simple.
    Alors la variable qui contient l'ID d'affliates et déjà là: fk_affiliates_customers... Cependant, j'ai essayé aussi avec des IF, mais pas de réussite...

  11. #11
    Membre régulier
    Homme Profil pro
    PLM IT Consultant
    Inscrit en
    Novembre 2003
    Messages
    202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Suisse

    Informations professionnelles :
    Activité : PLM IT Consultant

    Informations forums :
    Inscription : Novembre 2003
    Messages : 202
    Points : 86
    Points
    86
    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
    13
    14
    15
    16
    17
    18
    19
    20
    <tr>
    	<td>Affiliates:</td>
    	<td>
    	      <select name="for_affiliates">
    		<?php
    		do { 			if($ligne_customers->fk_affiliates_customers==$ligne_affiliates->pk_affiliates){
    		?>
    		<option value=<?php echo $ligne_affiliates->pk_affiliates; ?> selected><?php echo $ligne_affiliates->description_affiliates;?> / <?php echo $ligne_affiliates->name_regions;?></option>
    <?php
    	}
    	else
    	{
    ?>
    <option value=<?php echo $ligne_affiliates->pk_affiliates;?> ><?php echo $ligne_affiliates->description_affiliates;?> / <?php echo $ligne_affiliates->name_regions;?></option>
    					<?php
    					}
    					 } while($ligne_affiliates = $obj_affiliates->bd->objetSuivant($tab_affiliates)); ?>
    </select>
    </td>
    </tr>
    Voilà la solution. merci de vos aides respectives

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

Discussions similaires

  1. select in (select in (select in etc.))
    Par Christophe P. dans le forum Langage SQL
    Réponses: 4
    Dernier message: 28/01/2015, 11h34
  2. Lien sur select sur une application facebook
    Par caradok dans le forum Facebook
    Réponses: 6
    Dernier message: 24/08/2010, 14h12
  3. erreur 9 sur select sur 1 PC sur 7
    Par nanie_38 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/02/2010, 11h51
  4. Réponses: 6
    Dernier message: 20/11/2007, 11h14
  5. Evenement onmouseover sur le survol d'un "option" d'un "select"
    Par Bartuk dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 11/05/2006, 17h43

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