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 :

implementation de "select" interdependants [MySQL]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut implementation de "select" interdependants
    bonjour à tous,

    comme le dit le titre, je voudrais rendre 2 "select" interdépendants.

    le code de base est le suivant :

    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
     
    <!--Imputation-->
    	<hr style="width: 100%;"> <label for="imputation">Imputation :</label>
    	<select required="required" style="width:250px;">
    	<option>Sélectionner le Type d'imputation</option>
    		<?php  					
    			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');						
    			$requete = $bdd->query('select * from test.imputation'); 
    			while ($donnees = $requete->fetch())
    			{
    			echo '<option>'.$donnees['imputation'].'</option>';
    			}
    		?>	
    	</select>
     
    <!--Contrat-->
    	<hr style="width: 100%;"> <label for="contratClient">Contrat / Contract</label>:
    	<select style="width:175px;" disabled>
    	<option>Sélectionner le Contrat</option>
    		<?php  					
    			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');						
    			$requete = $bdd->query('select * from test.commande'); 
    			while ($donnees = $requete->fetch())
    			{
    				echo '<option>'.$donnees['num_contrat']." - ".$donnees['nom_client']." ".$donnees['type_equipement'].'</option>';
    			}
    		?>	
    	</select>
    comme vous le voyez, le second "select" est "disabled" et je veux le rendre "enabled" suivant le choix du 1er "select".

    j'imagine qu'un "simple "if" doit pouvoir regler le soucis mais je ne sais pas où le mettre et il me manque aussi la syntaxe.

    Merci d'avance pour votre aide.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Bonjour,

    Le plus simple est de passer par un formulaire qui se soumet lors d'une modification sur ton premier select.
    Tu récupère la valeurs du premier select graçe à $_POST et tu t'en sert pour modifier le contenu de ta seconde liste.
    Ou alors si tu sais faire tu peux le faire en utilisant ajax.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut
    désolé d'abuser mais est ce que tu pourrais me mettre la syntaxe un peu plus complete parce que je suis vraiment pas un pro du php...

    Quant à ajax, pour moi c'est plus une poudre a recurer qu'un langage de programmation !!!

    Merci d'avance

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    294
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2008
    Messages : 294
    Par défaut
    Si je reprend ton code, sa donnerai quelque chose comme sa
    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
     
     
    <!--Imputation-->
    	<hr style="width: 100%;"> <label for="imputation">Imputation :</label>
    <form method="POST" name="frm_test"> 
    	<select required="required" style="width:250px;" name="premierselect" onchange="document.frm_test.submit();">
    	<option>Sélectionner le Type d'imputation</option>
    		<?php  					
    			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');						
    			$requete = $bdd->query('select * from test.imputation'); 
    			while ($donnees = $requete->fetch())
    			{
    			echo '<option>'.$donnees['imputation'].'</option>';
    			}
    		?>	
    	</select>
     
    <!--Contrat-->
    	<hr style="width: 100%;"> <label for="contratClient">Contrat / Contract</label>:
    	<?php  					
    if (isset($_POST['premierselect'])){
    	<select style="width:175px;" disabled name="secondselect">
    	<option>Sélectionner le Contrat</option>
     
    			$bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');						
    			$requete = $bdd->query('select * from test.commande where imputation='.$_POST['premierselect']); 
    			while ($donnees = $requete->fetch())
    			{
    				echo '<option>'.$donnees['num_contrat']." - ".$donnees['nom_client']." ".$donnees['type_equipement'].'</option>';
    			}
    		?>	
    	</select>
    <?php
    }
    ?>
    Voila pour le principe, le code n'est pas très propre comme sa, il faudrait vérifier ce que contient la variable $_POST avant de l'utiliser.
    Sa t'aide un peu plus?

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut
    je teste et je reviens vers toi

    merci

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2008
    Messages
    105
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 105
    Par défaut
    bon...

    ça me fout le dawa et je ne comprends pas ce que je fais donc je peux pas rectifier avec mon pauvre niveau...

  7. #7
    Membre Expert

    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2011
    Messages
    1 723
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 1 723
    Par défaut
    Un simple if peut suffire si tu envois ton formulaire lors d'une sélection dans le premier formulaire et que tu ré-affiches ta page, mais c'est carrément lourdingue.

    Le mieux pour toi dans ce cas là est d'utiliser javascript.

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

Discussions similaires

  1. [VBnet][Access] Requete imbriquee "insert + select"
    Par Fab62_ dans le forum Windows Forms
    Réponses: 3
    Dernier message: 06/03/2006, 13h58

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