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 :

[drag drop] donner des propriétés à un élément ?


Sujet :

JavaScript

  1. #1
    Membre régulier Avatar de Merfolk
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    170
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 170
    Points : 113
    Points
    113
    Par défaut [drag drop] donner des propriétés à un élément ?
    Bonjour


    Mon but est de faire un drag & drop.
    Pour cela il existe pleins de librairies, j'en ai testé 2-3, j'arrive à faire des choses. Mais quelque soit celle que j'utilise, je suis face à la même problématique : comment exploiter les id des éléments droppés....(D'ailleurs c'est une question plus générales, qui n'a même rien à voir avec le drag & drop finalement // mais qui me serait diablement utile.)
    En quelques mots le code se resume souvent à ce principe, ceci quelque soit la librairie utilisée.


    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
     
     
    // les elements draggables
    <div id="elementDraggable1">bblabalabl</div>
    <div id="elementDraggable2">bblabalabl</div>
     
    //et dun autre côté des zones droppables
    <div id="zoneDrop1">bblabalabl</div>
     
    // init du moteur de drag drop
    Drag.add(elementDraggable1);
    Drag.add(elementDraggable2);
    Drop.add(zoneDrop1, functionQuiVaEtreAppelerQuandUnElementEstDroppeDessus);
     
     
    // que fait cette fameuse fonction ?
    function functionQuiVaEtreAppelerQuandUnElementEstDroppeDessus(IdelementDroppe)
    {
       alert('IdelementDroppe a été drag-droppé ');
     
    }
    Ceci est fonctionnel.
    Maintenant mon problème : Que faire de cet ID, comment l'exploiter....

    Est-ce qu'il y a moyen en javascript de donner des attributs quelconques à une div ? (un tag personnalisé) ?

    genre
    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
     
    <div id="draggable1"  attributs="categorie-5/compteur-10/produit-5050/idBdd-99555">Zone draggable1 </div>
     
     
    function onDrop(idElementDroppe)
    {
        // recuprer tous nos tags speciaux
         valeursPerso =  getElementbyId(idElementDroppe).getAttributs();
         data = fonction_genre_explode("/",valeursPerso );
     
         // puis là- avoir les attributs et en faire ce qu'on veut
         if (data[categorie] == "5")
             alert('cet element na pas le doit detre drag& droppé ici')
     
        if (data[categorie] == "4")
              Appeler_sauvegarder_base_de_donnees_ajax(data[produit],data[categorie],data[compteur])
     
        if (data[categorie == "2"])
     
         window.location = 'voir_profil_user.php?id=data[user]'
     
    // etc    // etc    // etc.
     
     
    }
    voilà je pense que vous avez compris mon problème. Avec un id d'un composant html, ça ne m'avance pas trop....il me faut des id de base de données des objets déplacés

    Est-ce possible ? Sinon comment faire de façon propre....
    La seule solution que j'ai en tête pour l'instant c'est de faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <div id="objetDraggale_JE CONCATENE_TOUTES_LESINFOS_LA_DEDANS">blablablaba</div>
     
    function on drop(IdDroppe)
    {
           numeroSerie = subString(idDroppé , 0 ,8 );
           autreInfos = subString(idDroppé,9,2 );
           EncoreUneAutreInfos = subString(idDroppé,12,6 );
     
          appeler script php  (numeroSerie ,autreInfos ,EncoreUneAutreInfos  )
     
    }
    Mais ça me semble très mauvais. Comment faire ?
    Merci !
    Chasseur de bug en activité
    L'erreur est humaine, mais pour vraiment foutre le bordel, on a besoin d'un ordinateur

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    13 474
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2007
    Messages : 13 474
    Points : 36 571
    Points
    36 571
    Par défaut
    Bonjour,
    Citation Envoyé par Merfolk Voir le message
    Mais ça me semble très mauvais.
    pas tant que ça
    Il suffit de t'assurer que l'ID reste bien unique.
    Pour cela, il suffit que la "racine" ("objetDraggale" de ton exemple) le soit, au cas où les autres attributs puisse être identiques.
    Sinon, pour rester "carré" (sans définir des attributs "perso" qui poseront peut-être des problème de compatibilité), tu peux stocker ces info dans des input type = "hidden" de ton div draggé. Tu pourras les récupérer sans ambigüité ...

    A+
    Pour tout savoir sur l'utilisation du forum

    En postant votre message, n'oubliez pas les Règles du Club.

Discussions similaires

  1. Drag & drop avec des listes imbriquées
    Par tigunn dans le forum jQuery
    Réponses: 6
    Dernier message: 26/11/2012, 11h42
  2. [drag and drop] limitation des éléments
    Par pi-2r dans le forum jQuery
    Réponses: 4
    Dernier message: 22/09/2012, 14h44
  3. [pyCairo] Donner des identifiants aux éléments exportés en SVG
    Par ryced dans le forum Bibliothèques tierces
    Réponses: 4
    Dernier message: 11/06/2012, 18h32
  4. [MySQL] Donner des propriétés à des fichiers copiés
    Par Mizur dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 18/05/2011, 14h50
  5. Réponses: 5
    Dernier message: 09/11/2006, 14h48

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