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 and drop entre deux Liste BOX


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Drag and drop entre deux Liste BOX
    Bonjour les amis ,j'ai un grand probleme je cherche a faire de drag and drop entre deux listes (bascule d'élement à l'aide de drag and drop) mais vu que je suis un debutant en JS j'arrive pas si qq 1 peut m'aide STP merci d'avance

  2. #2
    Membre expérimenté
    Avatar de Jumano
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1 163
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 1 163
    Points : 1 595
    Points
    1 595
    Par défaut
    Bonsoir,
    Tu peux peut être commencer par regarder ceci ...

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut Drag and drop
    merci jumano de votre initiative mais le problème c'est que je veut faire a l'aide d'un drag and drop.
    j'ai réussit a faire ca mais le problème c'est quelle marche pas sur firefoxe en plus je veut un drag and drop de plusieurs élément (multiselect)
    voila mon code

    <html>
    <head>
    <title>Testing</title>
    <script language="javascript" type="text/javascript" src="prototype.js"></script>
    <script language="javascript" type="text/javascript">
    var d;
    function drag(objSource) {
    this.select = objSource;
    }

    function drag.prototype.drop(objDest) {
    if (!this.dragStart) return;
    this.dest = objDest;

    var o = this.option.cloneNode(true);
    this.dest.appendChild(o);
    this.select.removeChild(this.option);
    //alert('done!');
    }

    function drag.prototype.setIndex() {
    var i = this.select.selectedIndex;

    //i returns -1 if no option is "truly" selected
    window.status="selectedIndex = "+i;
    if (i==-1) return;

    this.option = this.select.options[i];
    this.dragStart=true;
    }

    function drag.prototype.dump() {
    var dump = '';
    for (var i in this) {
    if (typeof this[i] != 'function')
    dump += i + ' : ' + this[i] + ' : ' + this[i].nodeName + ' : ' + typeof this[i] + '\n';
    }
    //alert(dump);
    }
    </script>
    </head>
    <body>
    <form >

    <select name="one" size="5" multiple="multiple" onmousedown="d = new drag(this);" onmouseup="d.drop(this.form.two);" onmouseout="if (typeof d != 'undefined') d.setIndex();">
    <option value="opt 1">Option 1</option>
    <option value="opt 2">Option 2</option>
    <option value="opt 3">Option 3</option>
    <option value="opt 4">Option 4</option>
    <option value="opt 5">Option 5</option>
    </select>

    <select name="two" size="5" style="width:70px" onmousedown="d = new drag(this);" onmouseup="d.drop(this.form.one);" onmouseout="if (typeof d != 'undefined') d.setIndex();">
    </select>
    <!--
    <p>
    <select name="three" size="5" onmousedown="d = new drag(this);" onmouseup="d.drop(this.form.four);" onmouseout="if (typeof d != 'undefined') d.setIndex();">
    <option value="opt 1">Option 1</option>
    <option value="opt 2">Option 2</option>
    <option value="opt 3">Option 3</option>
    <option value="opt 4">Option 4</option>
    <option value="opt 5">Option 5</option>
    </select>

    <select name="four" size="5" style="width:70px">
    </select>

    <br>
    -->
    </form>
    </body>
    </html>

    merci de votre aide

  4. #4
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 9
    Points : 6
    Points
    6
    Par défaut

    super j'ai réussie a le monter moi même alors c'est bien pour nous tous


    <html>
    <head>
    <title>Testing</title>
    <script language="javascript" type="text/javascript" src="prototype.js"></script>
    <script language="javascript" type="text/javascript">

    var d;
    drag=function (objSource) {
    this.select = objSource;
    getSelected(objSource);
    }
    //ajout d'une fonction dynamique a la classe drag
    drag.prototype.drop=function (objDest,objSource) {
    if (!this.dragStart) return;
    addelement(objDest,objSource);
    selectedList=Array();

    }

    drag.prototype.setIndex=function () {
    var i = this.select.selectedIndex;
    window.status="selectedIndex = "+i;
    if (i==-1) return;

    this.option = this.select.options[i];
    this.dragStart=true;
    }


    var selectedList=new Array();

    function isexist(element,object){
    var exist=0;
    for(var i=0;i<object.options.length;i++){
    if(object.options[i].value==element){
    exist+=1;
    }
    //alert(element + ":" + object.options[i].value);
    }
    return exist;
    }


    function addelement(selectBox,selectDest){
    var sommet=selectBox.options.length;
    for (var i=0; i<selectedList.length; i++){

    if(isexist(selectedList[i].value,selectBox)==0){

    selectBox.options[sommet]=new Option(selectedList[i].text,selectedList[i].value, false)
    selectDest.removeChild(selectedList[i]);
    sommet++;
    }
    else
    {
    //continue
    }
    }
    }


    function getSelected(selectBox){
    for (var i=0; i<selectBox.options.length; i++) {

    if (selectBox.options[i].selected==true) {
    selectedList.push(selectBox.options[i]);
    }
    }
    }


    </script>
    </head>
    <body>
    <form >
    <table width="400">
    <tr>
    <td>
    <select name="one" size="5" multiple="multiple" onmousedown="d = new drag(this);" onmouseup="d.drop(this.form.two,this.form.one);" onmouseout="if (typeof d != 'undefined') d.setIndex();">
    <option value="opt 1">Option 1</option>
    <option value="opt 2">Option 2</option>
    <option value="opt 3">Option 3</option>
    <option value="opt 4">Option 4</option>
    <option value="opt 5">Option 5</option>
    </select>
    </td>
    <td>
    </td>
    <td>
    <select name="two" size="5" style="width:70px" onmousedown="d = new drag(this);" onmouseup="d.drop(this.form.one,this.form.two);" onmouseout="if (typeof d != 'undefined') d.setIndex();">
    <option value="opt 1">Option 1</option>
    </select>
    </td>
    </tr>
    </table>
    </form>
    </body>
    </html>

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

Discussions similaires

  1. [VBA-E]drag and drop entre deux listbox
    Par Yolak dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 14/06/2012, 14h37
  2. Drag and Drop entre deux listes
    Par tom572007 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 15/05/2009, 16h03
  3. Drag and drop entre deux ListBox
    Par simoinfonet dans le forum Langage
    Réponses: 0
    Dernier message: 18/04/2008, 18h53
  4. Drag and Drop entre deux list view
    Par mkaffel dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/10/2007, 21h52
  5. [FLASH MX2004] Drag and drop entre deux List
    Par aldo-tlse dans le forum Flash
    Réponses: 15
    Dernier message: 24/09/2005, 01h10

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