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 :

Liste déroulante conditionnelle.


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Par défaut Liste déroulante conditionnelle.
    Bonjour!!

    J'ai récupéré un petit script qui met à jour une deuxième liste déroulante en fonction du choix fait dans une premiere.
    Je le fais en interrogeant une base mySQL, ca marche niquel, par contre en interrogeant ma base oracle ca ne marche pas.

    Je récupère bien mes infos dans la 1ere liste, mais la seconde ne se met jamais à jour...

    Quelqu'un peut il m'aider à y voir plus clair, je suis débutant en javascript.
    Merci beaucoup^

    Code qui marche :

    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
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    <script>
    //******Pour remplir le service et les noms des techniciens**********
    
    List = new Array();
     
    function remplir(valeur){
    	
    	var sel = "";
    	sel = "<select size='1' name='nomtech'>";
    	   for (var i=0;i<List.length;i++){
    	
    	       if (List[i][1]==valeur){
    	         sel=sel+"<option value="+List[i][0]+">"+List[i][0]+"</option>"; 
    	       }
    	   }
    	sel=sel+"</select>"; 
    	
    	//modifier le div par la nouvelle list à partir de la variable SEL
    	document.getElementById('tech').innerHTML=sel;
    	
    	
    }
    </script>
    
    </head>
    
    <body>
    
    <div align="center">
    	<font size="24" color="#006666">Page d'accueil</font>
    </div>
    <br><br><hr><br>
    
    
    <form method="POST" action="login.php">
    
    <!----------------------------------------Affiche et remplit les listes de service et des noms ---------------------------------------->
    	<div class="liste">
    	<label>	Service</label> : 
    	<select size="1" name="service" onChange="remplir(service.value)">
    	<option value="vide">Sélectionnez le service</option>
    		
    		<?php
    		
    		
    		$i=0; //variable de test
    		$j=0; //variable pour garder la valeur du premier enregistrement service pour l'affichage
    		
    		
    		$connexion=mysql_connect('localhost','root','dikeos') or die ("Impossible de se connecter");		
    		mysql_select_db('travaux',$connexion);
    		
    //selection du service de la table technicien		
    $req="SELECT service FROM technicien GROUP BY service";
    $res=mysql_query($req) or die ("Echec de la requete");
    		
       while($dt=mysql_fetch_row($res)){
       //remplir la liste déroulante des services 
    			
    	echo "\t\t<option value=".($dt[0]).">".($dt[0])."</option>";
    			
    	if ($i==0){
                      $j=$dt[0];
    	     $i=1; //garder la valeur du premier enregistrement
    				
    	}
       }
    				
    ?>
    
    </select>
    </div> 
    <script>remplir(service.value)</script> 
    		
    <div class="nom">
        <label>Nom</label> :
    </div>
    	
    <div id="tech">		
        <select size="1" name="nomtech">
        </select>
    </div>
    	
    <?php
    	
    $req="SELECT nom,service FROM technicien ORDER BY nom";
    $res=mysql_query ($req) or die ("Echec dans la requete");
    $i=0;
        while ($dt=mysql_fetch_row($res)){
    	//remplir le tableau (array) en javascript (List[1]=new array ("technicien1","service"))
    	echo"<script>List[".$i."]=new Array('".($dt[0])."','".($dt[1])."');</script>";
    	$i=$i+1;
        }		
    	
         echo"<script>remplir($j);</script>"; 
         //remplir la deuxième liste avec les données des techniciens en utilisant j	
    ?>

    Code qui marche pas :

    Seule l'interrogation de la base de données change :
    Dans cette partie, Craft correspond au service et lastname au nom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $sql=new oracle();
    $sql->connect();
     
    $req="SELECT CRAFT FROM EMP GROUP BY CRAFT";
    $sql->execute($req);
     
    	for($i=0;$i<$sql->nbresults();$i++){
    		$dt=$sql->recup($i,"CRAFT");
    		echo "\t\t<option value=".($dt).">".($dt)."</option>";
    			if ($i==0){
    			    $j=$dt;
    			    $i=1; //garder la valeur du premier enregistrement
    			}
    	}
    puis

    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
    <?php
            
            
    $sql=new oracle();
    $sql->connect();
    $req="SELECT distinct LASTNAME,CRAFT FROM EMP ORDER BY LASTNAME";
            $sql->execute($req);
            for($i=0;$i<$sql->nbresults();$i++){
                            $dt0=$sql->recup($i,"LASTNAME");                
                            $dt1=$sql->recup($i,"CRAFT");
                            echo"<script>List[".$i."]=new Array('".($dt0)."','".($dt1)."');</script>";
            }
            
            echo"<script>remplir($j);</script>";    
            ?>

    Désolé pour le pavé de code et encore merci

    EDIT : POur info, j'ai l'erreur suivante 'ASSIST' est indefini.
    ASSIST est le premier enregistrement pour le champs "craft" et accessoirement la valeur de $j.

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Si ca marchait avec la base SQL, c'est du coté serveur et du traitement des données de la base Oracle qu'il faut chercher la faute...

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Par défaut
    donc selon toi mon code est bon?

    mais coté oracle, je me connecte bien à la base, et j'arrive bien à récupérer les valeurs du champs "craft" et à les afficher...
    donc je comprends pas trop.

    Enfin merci à toi

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    Si ca marchait avant, le code JS est tjrs bon...

    le code PHP est donc à revoir

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Par défaut
    ca parait effectivement logique...
    mais quand je met "afficher la source", le code que j'obtiens semble correct...
    Enfin ce que je veux dire c'est que le php a copié ce qu'il devait, et dans les 2 cas les listes ont l'air d'etre remplies.

    Bon bah si rien te saute aux yeux, je vais continuer à gratter...

Discussions similaires

  1. [XL-2003] Liste déroulante conditionnelle dépendante d'une première liste
    Par CRIS2010 dans le forum Excel
    Réponses: 7
    Dernier message: 23/04/2019, 17h26
  2. [AC-2010] Zone de liste déroulante conditionnelle
    Par IaMTouF dans le forum IHM
    Réponses: 2
    Dernier message: 01/03/2012, 18h35
  3. [XL-2007] Liste déroulante conditionnelle issue d'un tableau
    Par vpet dans le forum Excel
    Réponses: 2
    Dernier message: 28/10/2011, 11h43
  4. Liste déroulante conditionnelle
    Par Hyuunkel dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 18/08/2011, 15h15
  5. [XL-2007] Liste déroulante conditionnelle
    Par romromain dans le forum Excel
    Réponses: 8
    Dernier message: 25/05/2011, 13h51

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