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

Bibliothèques & Frameworks Discussion :

Modifier le drag'n drop de Rico [Rico]


Sujet :

Bibliothèques & Frameworks

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut Modifier le drag'n drop de Rico
    Bonjour tout le monde,

    Voilà je voudrais essayer de créer un site avec une colonne gauche et droite dans lesquelles je pourrais déplacer des blocs (div) d'une colonne à l'autre.

    J'ai utilisé un drag'n drop Rico : http://openrico.org/rico/demos.page?...nd_drop_simple

    que j'ai intégré dans ma page dont voici le 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
    <html>
    <script src="prototype.js" type="text/javascript"></script>
    <script src="rico.js" type="text/javascript"></script>
    <head>
    <title>Rico</title>
    </head>
    <body>
    <table style="margin-bottom:8px" cellspacing="3" cellpadding="3">
    <tr>
       <td valign="top" id="zonegauche" style="width:150px;background:#ffd773" >            
             <div style="width:150px;background:#f7a673;border:1px solid black" id="box1" onBlur="javascript:alert('j')">Recherche<br>Tous bordereaux<br>Hébergement<br>Bordereau unique<br>lien</div>
             <div style="width:150px;background:#f7a673;border:1px solid black" id="box2">Gestion des droits<br>lien<br>lien<br>lien<br>lien</div>
             <div style="width:150px;background:#f7a673;border:1px solid black" id="box3">Valeurs<br>lien<br>lien<br>lien<br>lien</div>     
        </td>    
        <td valign="top">
         Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Sed convallis diam et nisi. Aenean vestibulum, ante nec luctus fermentum, nisi nisl cursus eros, a fringilla purus urna ut odio. Sed ac pede eu turpis elementum imperdiet. Nulla facilisi. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Vivamus placerat, lacus ut rutrum auctor, neque leo adipiscing felis, ac laoreet risus felis tempus eros. Pellentesque non magna sed orci semper porta. Phasellus lobortis orci pharetra sapien. Phasellus vitae dui. Cras elementum est et pede. In lobortis ligula et felis. Nunc in enim a pede pharetra aliquet. Donec in felis et augue vestibulum congue. Aliquam eu ligula. Curabitur sit amet magna. Donec mattis mauris id urna. Nunc nisi ante, tempor ornare, tincidunt sed, bibendum et, felis. 
        </td>
        <td valign="top" id="zonedroite" style="width:150px;background:#c6c3de">      
         </td>
    </tr>
    </table>
    <script>
       dndMgr.registerDraggable( new Rico.Draggable('test-rico-dnd','box1') );
       dndMgr.registerDraggable( new Rico.Draggable('test-rico-dnd','box2') );
       dndMgr.registerDraggable( new Rico.Draggable('test-rico-dnd','box3') );
       dndMgr.registerDropZone( new Rico.Dropzone('zonegauche') );
       dndMgr.registerDropZone( new Rico.Dropzone('zonedroite') );
    </script>
    </body>
    </html>
    voici les librairies nécessaires :
    http://openrico.org/rico/download_file/1.1.2/rico.js
    http://openrico.org/dist/1.1.2/prototype.js

    En fait tout marche bien, seulement je voudrais pouvoir enregistrer la position des box dans une base de données ou un cookie afin que l'utilisateur garde ses dispositions à chaque rechargement de page et chaque visite.

    Vous pourrez constater que j'ai placé un onBlur sur une des box pour tester les différents évenements, mais je n'ai rien trouvé de très convaincant.
    Mon idée était de déclencher une action coté serveur via Ajax dès que l'utilisateur relache la box... mais je ne sais comment implémenter cette solution, du moins la partie detection du relachement.

    merci d'avance pour votre aide !

  2. #2
    Membre éprouvé Avatar de rieppe
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2004
    Messages
    115
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2004
    Messages : 115
    Par défaut
    Salut,

    Niveau relachement de la boite, tu ne peux pas utiliser l'évènement "onMouseUp" (qui doit correspondre au relâchement du bouton de la souris je crois) ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut
    Salut,

    J'ai essayé cette solution, mais si tu veux lorsque tu relache le clic gauche ton div est aspiré vers la zone cible, et en fait le onmouseup se déclanche avant que le div soit positionné dans son conteneur.

    Mais j'ai trouvé sur le forum anglais de rico un début de piste, en fait dans une méthode de la librairie qui est la suivante :

    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
    _placeDraggableInDropZone: function(e) {
          var foundDropZone = false;
          var n = this.dropZones.length;
          for ( var i = 0 ; i < n ; i++ ) {
             if ( this._mousePointInDropZone( e, this.dropZones[i] ) ) {
                if ( this.dropZones[i].canAccept(this.currentDragObjects) ) {
                   this.dropZones[i].hideHover();
                   this.dropZones[i].accept(this.currentDragObjects);
                   foundDropZone = true;
    			   alert("Conteneur :"+this.dropZones[i].getHTMLElement().id+"\ndiv déplacé :"+this.dragElement.id+"\nposition fct du parent :"+this.dragElement.offsetTop);
                   break; 
                }
             }
          }
          return foundDropZone;
       },
    J'arrive à afficher la zone dans laquelle est le div ainsi que sa position top par rapport au div parent.

    Ce que je cherche maintenant à faire, c'est premièrement remplacer mes alertes par un code qui me liste les offsetTop de chaque div de chaque conteneur, puis via Ajax de les insérer dans un cookies, une table en bdd ou dans la session PHP...

    bref j'ai du boulot ! surtout que je ne connais rien à Ajax, donc si vous avez une idée elle sera la bienvenue !

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 746
    Par défaut
    J'ai réussi à faire ce que je voulais, c'est à dire à sauvegarder en base de données la position des boxs dès qu'on drag-drog un div.

    Si la solution interesse quelqu'un faites remonter le topic

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 4
    Par défaut
    Bonjour !!

    Je viens de laisser un message sur le forum, à l'adresse suivante : ma demande de contribution
    Si tu penses que tes travaux avec Rico peuvent m'aider, je t'en remercierai ..

    Stéphane

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

Discussions similaires

  1. Drag and drop "de l'extérieur"
    Par Invité dans le forum C++Builder
    Réponses: 12
    Dernier message: 31/03/2020, 10h10
  2. Modifier le curseur de drag'n'drop
    Par buzzkaido dans le forum Qt
    Réponses: 0
    Dernier message: 12/03/2011, 16h56
  3. [FLASH 8] Modifier exemple de drag and drop
    Par gerlougir dans le forum Flash
    Réponses: 2
    Dernier message: 20/01/2007, 16h45
  4. [JSP][DRAG AND DROP]
    Par hamed dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 23/01/2004, 17h36
  5. drag and drop
    Par jujuesteban dans le forum Composants VCL
    Réponses: 5
    Dernier message: 20/06/2003, 09h23

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