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 :

recontruction de liste déroulante


Sujet :

JavaScript

  1. #1
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut recontruction de liste déroulante
    Bonjour tout le monde,

    J'ai des difficultés pour reconstruire une lise déroulante après l'avoir vidée :

    Je vide donc ma liste déroulante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    emptySel(document.getElementById('list_supp_manip'));
    Voici le code de ma fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    function emptySel(sel)
    {
       //alert(sel);
       while(sel.options[0])
       {
         sel.removeChild(sel.options[0])
       }
    }
    J'essaie de construire ma liste déroulante avec ce code javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
                                     MesOption=eval("(" + retour + ")");
    				alert(MesOption);
    				for (key in MesOption) 
    				{
    					LeTexte = MesOption[key];
    					alert(LeTexte);
    					LaValeur = key;
    					var NewOption = document.createElement('option');
    					NewOption.value = LaValeur;
    					NewOption.innerHTML=LeTexte;
    					document.getElementById('list_supp_manip').appendChild(NewOption);
    				}
    Ma liste se vide mais je ne remplit pas.

    L'alerte suivante ne se lance pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MesOption=eval("(" + retour + ")");
    				alert(MesOption);
    J'ai pourtant un retour de PHP qui est le suivant :

    {"acridine orange","cycle cellulaire","apoptose TUNEL","apoptose annexin V","Autre"}

    Voici mon code PHP au cas où :

    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
     
    <?php
            
            include('../connexion.php');
            $sql = "DELETE FROM manips WHERE ID = ".$_POST['id'];
            $query = mysql_query($sql);
            
            $nombre_res = mysql_affected_rows();
            
            $sql_select = "SELECT * FROM manips";
            $query_select = mysql_query($sql_select);
            
            $return='{';
            //ensuite chaque nom des options separes par des ":"
            while($row = mysql_fetch_assoc($query_select)) 
            {
                    //création de la liste déroulante des étudiants non clôturés
                    $return .='"'.$row["nom_manip"].'",';   
            }
            //je remplace la derniere virgule par la ) dans la variable $return             
            $return=preg_replace("/,$/","}",$return);
            //je retourne le rsultat a AJAX
            echo trim($return);
     
    ?>
    Edit :

    Le problème doit provenir de ce code :

    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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
     
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    		<title>Ajout d'une manip </title>
    		<script type="text/javascript" src="AJAX/Ajout_manip.js"></script>
    		<script type="text/javascript" src="AJAX/xhr.js"></script>
    		<script type="text/javascript" src="AJAX/Supprimer_manip.js"></script>
    		<script type="text/javascript" src="Fonctions/vider_liste_deroulante.js"></script>
    	</head>
     
    	<body>
    		<div id="form_ajout_manip"><input type="text" id="text_manip" size="50" /></div>
    		<p>
    		  <input type="button" value="Ajouter cette manip" onclick="Ajouter_manip(document.getElementById('text_manip').value)" />
        	</p>
    		<div id="resultat"></div>
    		<p>&nbsp;</p>
    		<p><img src="images/Point_interrogation.png" alt="D&eacute;tail" width="23" height="23" />&nbsp; Ajoute une manipulation </p>
     
    		<div id="form_supp_manip">	
    			  <select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)">
    			  <option value="">Choisissez la manip à supprimer</option>
     
    			<?php
                                    include('connexion.php'); 
                                    $sql = 'SELECT * FROM manips';
                                    $query = mysql_query($sql);
                                    while($manip = mysql_fetch_array($query))
                                    {
                                            echo '<option value='.$manip['ID'].'>'.$manip['nom_manip'].'</option>';
                                    }
                                    
                            ?>
    			</select>
    		</div>
    		<div id="resultat_suppression"></div>
     
    		<p><img src="images/Point_interrogation.png" alt="D&eacute;tail" width="23" height="23" />Supprime une manipulation</p>
     
    	</body>
    </html>
    C'est la page qui contient la liste déroulante et qui contient l'évènement onchange.

    Le code généré de la liste déroulante originale :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)">
    Le code de la liste déroulante après génération :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <select id="list_supp_manip" onchange="Supprimer_manipulation(this.value)">  </select>
    Le problème devrait donc provenir d'ici.


    Merci d'avance.

    beegees

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    remet le option.length à zero une fois le select vide,
    pouis incrémente le options.length de 1 juste avant d'appender l'option
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre expérimenté
    Avatar de beegees
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2004
    Messages
    3 610
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2004
    Messages : 3 610
    Par défaut
    Citation Envoyé par SpaceFrog Voir le message
    remet le option.length à zero une fois le select vide,
    pouis incrémente le options.length de 1 juste avant d'appender l'option
    Salut Spaffey,

    Je viens de trouver la solution.

    Le problème était au niveau de la chaine json.

    J'envoyais la valeur mais pas la clé.

    Problème résolu.

    Merci pour ton aide.

    beegees

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

Discussions similaires

  1. valeur d'une liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 7
    Dernier message: 15/04/2004, 16h11
  2. liste déroulante
    Par leeloo076 dans le forum ASP
    Réponses: 12
    Dernier message: 23/03/2004, 10h35
  3. liste déroulante avec session
    Par leeloo076 dans le forum ASP
    Réponses: 3
    Dernier message: 19/03/2004, 11h01
  4. liste déroulante en ASP vbscript
    Par leeloo076 dans le forum ASP
    Réponses: 9
    Dernier message: 17/03/2004, 16h42
  5. Listes déroulantes liées entre elles
    Par denisC dans le forum Général JavaScript
    Réponses: 0
    Dernier message: 27/07/2002, 15h53

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