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

JavaScript Discussion :

Afficher un tableau suivant un select


Sujet :

JavaScript

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Afficher un tableau suivant un select
    Bonjour,

    Je suis débutant dans javascript, et je voulais demander votre aide, j'ai une liste déroulante que je remplis à partir d'une base de données et une autre page ou j'affiche un tableau de données récupérés de la base de données.

    Ma question:

    là j'ai mis le select avec le onchange mais j'ai un soucis au niveau de la fonction du js et j'aimerai votre avis dessus.

    Merci d'avance.


    *) Mon select :
    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
    15
     <select  id="numBC" name="numBC" onchange="changementType();">
          <option value="0"> ---- Choisissez un bon de commande ----</option>
    	<?php
               // Je récupère le contenu du select :
    		$bdd=connectBD();	
    		$req = $bdd->query('SELECT  DISTINCT(numBC) FROM commandefournisseur ');							
    		while ($donnees = $req->fetch()){
    				$numBC=$donnees['numBC'];
    	?>							
    		<option value="<?php echo $numBC; ?>"> <?php echo $numBC; ?></option>
    	<?php 
    		}
    	$req->closeCursor();
    	?>
    </select>

    *) Ma fonction JS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function changementType() { 
    	var numBC = document.getElementById("numBC"); 
    	var div = document.getElementById("detailComm"); 
    		if (numBC != 0) { 
    			div.style="display:block"; 
    		} else { 
    			div.style="display:none"; 
    		} 
    }
    *) Ma div qui contient le tableau a afficher :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <div  id="detailComm" style="display:none" class="table-responsive">
    <table class="table table-striped table-bordered">
    ..
    .. (je fais des traitement de base de donnees en utilisant le $numBC récupere ds le select)
    ..
    </table>
    </div>

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var numBC = document.getElementById("numBC");
    Là, ta variable numBC référence un objet DOM de type HTMLSelectElement.
    donc numBC ne peut jamais être égal à 0 ! C'est la propriété value de l'objet qu'il faut tester...

    D'autre part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    div.style="display:block";
    Cette façon de faire, sans pour autant être réellement fausse, est malgré tout maladroite. Il est préférable de modifier les propriétés de l'objet style.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    div.style.display = "block";

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Janvier 2013
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2013
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    j'ai corrigé la seconde remarque, mais pour la première je n'ai pas de contrôle sur la valeur de numBC, elle est remplie de la base de données, donc dans mon javascript je veux qu'elle affiche le tableau de données dans la div en fonction de la valeur du numBC, par exemple elle affichera tous les détails de la commande qui aura le numBC = AB123 sachant que l'utilisateur a sélectionné AB123 dans la liste déroulante. chaque fois que la valeur selectionné dans la liste déroulante va changer, les informations que contiendra le tableau seront differentes (vu que je les récupere via une requete sql)

    et le 0 c'est la valeur de ce choix là : <option value="0"> ---- Choisissez un bon de commande ----</option>

    (et merci pour votre réponse)

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    mais pour la première je n'ai pas de contrôle sur la valeur de numBC
    Je crois que tu n'as pas compris ce que j'ai dit...

    Je ne te dis pas de modifier cette variable, je te dis juste que ce qu'elle contient est un objet DOM, qui ne peut donc jamais valoir une valeur numérique, contrairement à la propriété value de cet objet !

  5. #5
    Membre expert
    Avatar de Spartacusply
    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
    Points : 3 275
    Points
    3 275
    Par défaut
    Pour faire une métaphore :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (personne == 72) //Une personne = 72 ? Ca ne veut rien dire.
    if (personne.poids == 72) //Alors que ceci est parfaitement compréhensible, si la personne pèse 72 kilos...
    C'est idem avec ton formulaire, si numBC != 0, comprends pas, par contre si numBC.value != 0 c'est quand même beaucoup mieux.

Discussions similaires

  1. faire afficher des données suivant une selection
    Par pi-2r dans le forum Langage
    Réponses: 11
    Dernier message: 15/07/2011, 01h58
  2. Afficher un tableau selon liste de selection
    Par stanley dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 26/10/2009, 15h03
  3. Réponses: 1
    Dernier message: 27/04/2009, 18h03
  4. <select> qui affiche des input different suivant la selection
    Par cirvent dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 02/10/2008, 18h52
  5. masquer/afficher input name suivant selection dans une liste
    Par rvm31 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 28/12/2007, 19h33

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