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 :

Suppression d'un élément d'un <select>


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut Suppression d'un élément d'un <select>
    Bonjour,

    j'ai plusieurs listes à choix multiple dans ma page, et chacune d'elle contient un certain nombre de sociétés enregistrées dans ma base.

    Je veux supprimer une société quand je clique sur son nom dans une liste.

    Construction d'une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    echo '<select id="soc_add" multiple="multiple" name="'.$idcat.'.1[]" size="3">';
     
    $reqsoccat = mysql_query("SELECT S.nom_societe,L.id_societe
    FROM societe S ...");
    while($data = mysql_fetch_array($reqsoccat))
    {
    	$idsoc = $data['id_societe'];
    	$nomsoc = $data['nom_societe'];?>
    	<option id="<?php echo $idcat.'-'.$idsoc; ?>" value="<?php echo $idsoc; ?>" onClick="del_soc('<?php echo $idcat.'-'.$idsoc; ?>')"><?php echo $nomsoc;?></option> <?php
    }
    echo '</select>';
    J'obtiens bien mes listes de sociétés.
    Ensuite, la fonction qui est appelée dans mon onClick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function del_soc(societe)
    {
    	alert(societe);
    	var listeSoc = document.getElementById("soc_add");
    	var delsoc = document.getElementById(societe);
    	listeSoc.removeChild(delsoc);
    }
    Le alert() me renvoie bien ce qu'il faut : id_categorie - id_societe.

    Problème : seule la première liste ne me renvoie pas d'erreur et supprime bien la société sur laquelle j'ai cliquée.
    Pour les autres listes j'obtiens une erreur :
    Node was not found" code: "8
    [Break on this error] listeSoc.removeChild(delsoc);\n
    Le code html généré :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    <select id="soc_add" size="3" name="51.1[]" multiple="multiple">
    <option id="51-13" onclick="del_soc('51-13')" value="13">Societe1</option>
    </select>
    J'ai dû zapper quelque chose, mais je ne vois pas où.

    Merci

  2. #2
    Membre chevronné
    Inscrit en
    Octobre 2008
    Messages
    273
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Octobre 2008
    Messages : 273
    Par défaut
    Bonjour,

    pourquoi ne pas mettre :
    onClick="del_soc(this.id)" ?
    tu obtiens directement l'id.

  3. #3
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    Hum oui c'est pas faux.

    Cependant, ça ne change rien du tout à mon problème : la suppression fonctionne bien uniquement sur la première liste :/

  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
    Billets dans le blog
    20
    Par défaut
    Salut.
    En dehors du fait que tes id ne sont pas conformes (un id ne doit pas commencer par un chiffre), n'aurais-tu pas un problème d'id identiques dans tes listes ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre éclairé Avatar de baggie
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    755
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 755
    Par défaut
    J'avais regardé si mes id étaient identiques ou non, mais j'avais oublié de regarder l'id de mes select, qui eux étaient similaires. Bien vu Bovino

    Par contre, pour ce qui est de faire commencer les id par un chiffre, j'avais lu qu'en effet ce n'était pas conforme, mais en fait pourquoi ?

    Et si je laisse ça comme ça, même si ça fonctionne, faut mieux que je le change alors ?

Discussions similaires

  1. Réponses: 9
    Dernier message: 09/02/2007, 14h24
  2. Confirmation de la suppression d'un élément dans un SGBD
    Par Atharendil dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/09/2006, 13h40
  3. Réponses: 8
    Dernier message: 01/04/2006, 10h10
  4. ajout éléments dans une balise select
    Par wehtam dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2005, 14h03
  5. Réponses: 14
    Dernier message: 01/12/2003, 17h47

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