{"id":2102,"date":"2012-01-30T14:35:10","date_gmt":"2012-01-30T13:35:10","guid":{"rendered":"http:\/\/flaven.fr\/?p=2102"},"modified":"2013-09-24T05:51:51","modified_gmt":"2013-09-24T03:51:51","slug":"jquery-javascript-glisser-deposer-glisser-deposer-trier-enregistrer-avec-jquery","status":"publish","type":"post","link":"https:\/\/flaven.fr\/2012\/01\/jquery-javascript-glisser-deposer-glisser-deposer-trier-enregistrer-avec-jquery\/","title":{"rendered":"jQuery, javascript, Glisser-d\u00e9poser &#8211; Glisser-d\u00e9poser, Trier, Enregistrer avec jQuery"},"content":{"rendered":"<p><!--  jQuery, javascript, Glisser-d\u00e9poser - Glisser-d\u00e9poser, Trier, Enregistrer avec jQuery --><br \/>\n<!--  jQuery, javascript, Plugin, m\u00e9thode, fonction, d\u00e9veloppement, Pr\u00e9sidentiel, Candidats  --><\/p>\n<p>On connait tous forc\u00e9ment des expressions anglophones c\u00e9l\u00e8bres en musique notamment Rock and Roll, R&#8217;n&#8217;B, Twist and Shout&#8230; Dans le d\u00e9veloppement avec jQuery, celle qui faut connaitre, comme en Flash, c&#8217;est le Drag-and-Drop, un glisser-d\u00e9poser dans la langue de Moli\u00e8re. Rien \u00e0 voir avec une amortie au tennis, je vous rassure tout de suite, on va voir, dans cette article, comment faire un &#8220;Glisser-d\u00e9poser&#8221; combin\u00e9 avec un tri et un enregistrement de ce r\u00e9sultat, le tout \u00e0 l&#8217;aide de jQuery, of course.<!--more--><\/p>\n<p><b>N&#8217;oubliez pas d&#8217;appeler les librairies <code>jQuery.js<\/code> et <code>jQueryUI.js<\/code><\/b><\/p>\n<pre lang=\"javascript\" escaped=\"true\">\r\n\t&lt;script src=\"jQuery.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n\t&lt;script src=\"jQueryUI.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n<\/pre>\n\t\t\t\t\t<div class=\"textwidget-unique text\">\n\n\t\t\t\t\t        <div class=\"textwidget-photo\">\n\t\t\t\t\t                <a href=\"https:\/\/flaven.fr\/books\/beginning-javascript-and-css-development-with-jquery\/\" class=\"photo\" title=\"Beginning Javascript and CSS Development With jQuery\"><img loading=\"lazy\" decoding=\"async\" alt=\"Beginning Javascript and CSS Development With jQuery\" src=\"http:\/\/ecx.images-amazon.com\/images\/I\/51spxlIu-tL._SL160_.jpg\" width=\"127\" height=\"160\"><\/a>\n\t\t\t\t\t            <\/div>\n\t\t\t\t\t\t<div class=\"info half\">\n\t\t\t\t\t\t\t<h2 class=\"product-title\"><a class=\"head\" href=\"https:\/\/flaven.fr\/books\/beginning-javascript-and-css-development-with-jquery\/\" title=\"Beginning Javascript and CSS Development With jQuery\">Beginning Javascript and CSS Development With jQuery<\/a><\/h2>\n\t\t\t\t\t\t\t\n\t\t\t\t\t        <p class=\"product-excerpt\">Un aper\u00e7u tr\u00e8s complet des potentialit\u00e9s de jQuery en combinaison avec de la CSS pour cr\u00e9er des interfaces riches et interactives multi-plateformes.<\/p>\n\t\t\t\t\t\t\t\tGenre(s) : <a href=\"https:\/\/flaven.fr\/book-type\/agile\/\" rel=\"tag\">Agile<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/ajax\/\" rel=\"tag\">Ajax<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/api\/\" rel=\"tag\">API<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/ihm\/\" rel=\"tag\">IHM<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/jquery\/\" rel=\"tag\">jQuery<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/jquery-ui\/\" rel=\"tag\">jQuery UI<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/mobile\/\" rel=\"tag\">Mobile<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/ux-experience-utilisateur\/\" rel=\"tag\">UX<\/a>, <a href=\"https:\/\/flaven.fr\/book-type\/webdesign-responsive-agile\/\" rel=\"tag\">Webdesign<\/a><br>Auteur(s) : <a href=\"https:\/\/flaven.fr\/book-author\/richard-york\/\" rel=\"tag\">Richard York<\/a><br>Edition(s) : <a href=\"https:\/\/flaven.fr\/book-description\/john-wiley-sons-ltd\/\" rel=\"tag\">John Wiley &amp; Sons Ltd<\/a><br>\n\t\t\t\t\t<div class=\"but-wrap\"><a href=\"http:\/\/www.amazon.fr\/Beginning-Javascript-Development-With-jQuery\/dp\/0470227796%3FSubscriptionId%3DAKIAJYB2QGGQOTHQLRPA%26tag%3Dhecubenet-21%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3D0470227796\" class=\"button\"><span><i class=\"more\"><\/i>+ d'infos<\/span><\/a><\/div>\n\t\t\t\t\t\t<\/div>\n\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t\t\n<h4>S&#8217;\u00e9chauffer avec <code>sortable()<\/code><\/h4>\n<p>Pour s&#8217;\u00e9chauffer, on va d&#8217;abord voir tout simplement comment utiliser une fonction de tri nomm\u00e9e <code>sortable()<\/code>. Il faut pour cela bien sur charger la biblioth\u00e8que javascript <code>jQuery UI<\/code><\/p>\n<p><b>A noter, le container est, bien s\u00fbr, l&#8217;\u00e9l\u00e9ment <code>&lt;ul&gt;...&lt;\/ul&gt;<\/code>, et les enfants sont les \u00e9l\u00e9ments sujet au tri <code>&lt;li&gt;...&lt;\/li&gt;<\/code> contenue dans cet \u00e9l\u00e9ment parent.<\/b><\/p>\n<p>\t<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2012\/01\/jquery_drag_and_drop_1.jpg\" alt=\"jQuery, javascript, s\u00e9lection et filtrage - Filtrer et s\u00e9lectionner avec jQuery\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Le code du fichier <code>candidats_drag_and_drop_1.html<\/code><\/b><\/p>\n<pre lang=\"html\" escaped=\"true\">\r\n\t&lt;script src=\"jQuery.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n\t&lt;script src=\"jQueryUI.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n\t&lt;script type='text\/javascript'&gt;\r\n\r\n\t\t$(document).ready(\r\n\t\t  function() {\r\n\t\t    $('ul').sortable();\r\n\t\t  }\r\n\t\t);\r\n\r\n\t&lt;\/script&gt;\r\n\t&lt;style&gt;\r\n\tbody {\r\n\t    font: 16px sans-serif;\r\n\t    background: #fff;\r\n\t    color: rgb(50, 50, 50);\r\n\t    margin: 0;\r\n\t    padding: 0;\r\n\t}\r\n\th4 {\r\n\t    margin: 5px;    \r\n\t}\r\n\tul {\r\n\t    list-style: none;\r\n\t    width: 250px;\r\n\t    margin: 5px;\r\n\t    padding: 0;\r\n\r\n\t}\r\n\tli {\r\n\t    background: #F6177B;\r\n\t    padding: 3px;\r\n\t    width: 250px;\r\n\t    border: 1px solid #666666;\r\n\t\tcolor:#fff;\r\n\t}\r\n\t&lt;\/style&gt;\r\n\t&lt;\/head&gt;\r\n\t&lt;body&gt;\r\n\r\n\r\n\r\n\r\n\t\t&lt;h4&gt;Quelques candidats &agrave; la pr&eacute;sidentielle 2012 en France&lt;\/h4&gt;\r\n\t    &lt;ul&gt;\r\n\t\t\t&lt;li&gt;Jean-Pierre CHEVENEMENT&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Fran&ccedil;ois BAYROU&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Herv&eacute; MORIN&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Corinne LEPAGE&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Dominique de VILLEPIN&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Francois HOLLANDE&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Nicolas SARKOZY&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Eva JOLY&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Jean-Luc MELENCHON&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Fr&eacute;d&eacute;ric NIHOUS&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Marine LE PEN&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Christine BOUTIN&lt;\/li&gt;\r\n\t\t\t&lt;li&gt;Nicolas DUPONT-AIGNAN&lt;\/li&gt;\r\n\r\n\t    &lt;\/ul&gt;\r\n\t\r\n<\/pre>\n<h4>Le glisser-d\u00e9poser sur 2 colonnes<\/h4>\n<p>On est toujours avec nos candidats \u00e0 la pr\u00e9sidentielle 2012, on veut classer ces candidats dans l&#8217;ordre d&#8217;arriver comme au tierc\u00e9 !<br \/>\nPour se faire la meilleure approche est de cr\u00e9er une variable globale type <code>var $selectedNameCandidat;<\/code>, ainsi \u00e0 chaque fois qu&#8217;une s\u00e9lection est faite, l&#8217;\u00e9l\u00e9ment s\u00e9lectionn\u00e9 est stocker dans cette variable. Si vous n&#8217;agissez pas de la sorte, cela va ralentir consid\u00e9rablement l&#8217;ex\u00e9cution de votre script si votre liste contient de tr\u00e8s nombreux \u00e9l\u00e9ments.<\/p>\n<p><b>D\u00e9placement d&#8217;une colonne \u00e0 une autre<\/b><br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2012\/01\/jquery_drag_and_drop_2.jpg\" alt=\"jQuery, javascript, s\u00e9lection et filtrage - Filtrer et s\u00e9lectionner avec jQuery\" width=\"500\" height=\"265\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2012\/01\/jquery_drag_and_drop_3.jpg\" alt=\"jQuery, javascript, s\u00e9lection et filtrage - Filtrer et s\u00e9lectionner avec jQuery\" width=\"500\" height=\"265\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2012\/01\/jquery_drag_and_drop_4.jpg\" alt=\"jQuery, javascript, s\u00e9lection et filtrage - Filtrer et s\u00e9lectionner avec jQuery\" width=\"500\" height=\"265\" \/><\/p>\n<p><b>Le code du fichier <code>candidats_drag_and_drop_2.html<\/code><\/b><\/p>\n<pre lang=\"html\" escaped=\"true\">\r\n\r\n\t&lt;script src=\"jQuery.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n\t&lt;script src=\"jQueryUI.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n\t&lt;script type='text\/javascript'&gt;\r\n\r\n\t$(document).ready(\r\n\t  function() {\r\n\t    var $selectedNameCandidat;\r\n\r\n\t    $('li.CandidatName').mousedown(\r\n\t      function() {\r\n\t        if ($selectedNameCandidat &amp;&amp; $selectedNameCandidat.length) {\r\n\t          $selectedNameCandidat.removeClass('CandidatNameSelected');\r\n\t        }\r\n\r\n\t        $selectedNameCandidat = $(this);        \r\n\t        $selectedNameCandidat.addClass('CandidatNameSelected');\r\n\t      }\r\n\t    );\r\n\r\n\t    $('ul#column-1').sortable({\r\n\t      connectWith : [\r\n\t        'ul#column-2'\r\n\t      ],\r\n\t      placeholder: 'CandidatNamePlaceholder',\r\n\t      opacity: 0.8,\r\n\t      cursor: 'move'\r\n\t    });\r\n\r\n\t    $('ul#column-2').sortable({\r\n\t      connectWith : [\r\n\t        'ul#column-1'\r\n\t      ],\r\n\t      placeholder: 'CandidatNamePlaceholder',\r\n\t      opacity: 0.8,\r\n\t      cursor: 'move'\r\n\t    });\r\n\t  }\r\n\t);\r\n\r\n\t&lt;\/script&gt;\r\n\t&lt;style&gt;\r\n\thtml,\r\n\tbody {\r\n\t    width: 100%;\r\n\t    height: 100%;    \r\n\t}\r\n\tbody {\r\n\t    font: normal 12px \"Lucida Grande\", Arial, sans-serif;\r\n\t    color: rgb(50, 50, 50);\r\n\t    margin: 0;\r\n\t    padding: 0;\r\n\t\tbackground: #ccc;\r\n\t}\r\n\tdiv#hcontainer {\r\n\t    position: absolute;\r\n\t    top: 0;\r\n\t    right: 0;\r\n\t    bottom: 23px;\r\n\t    left: 0;\r\n\t}\r\n\tul#column-1,\r\n\tul#column-2 {\r\n\t    float: left;\r\n\t    height: 800px;\r\n\t    width: 300px;\r\n\t    border-bottom: 1px solid #666666;\r\n\t    border-right: 1px solid #666666;\r\n\t    background: #fff;\r\n\t    list-style: none;\r\n\t    margin: 0;\r\n\t    padding: 0;\r\n\t}\r\n\r\n\r\n\tli.CandidatName {\r\n\t    clear: both;\r\n\t    padding: 5px 5px 10px 5px;\r\n\t    min-height: 48px;\r\n\t    width: 290px;\r\n\t}\r\n\tli.CandidatName h5 {\r\n\t    font: normal 12px \"Lucida Grande\", Arial, sans-serif;\r\n\t    margin: 0;\r\n\t}\r\n\th5.CandidatName {\r\n\t    padding-left: 55px;\r\n\t}\r\n\tli.CandidatNameSelected {\r\n\t    background: #F6177B;\r\n\t    color: white;\r\n\t}\r\n\t.CandidatNamePlaceholder {\r\n\t    background: #999;\r\n\t    height: 58px;\r\n\t}\r\n\r\n\t&lt;\/style&gt;\r\n\t&lt;\/head&gt;\r\n\t&lt;body&gt;\r\n\r\n\r\n\r\n\t\t&lt;div id=\"hcontainer\"&gt;\r\n\t\t&lt;table border=\"0\"&gt;\r\n\t\t\r\n\t\t\t&lt;tr&gt;\r\n\t\t\t\t&lt;th&gt;&lt;h1&gt;Candidats&lt;\/h1&gt;&lt;\/th&gt;\r\n\t\t\t\t&lt;th&gt;&lt;h1&gt;R\u00e9sultats&lt;\/h1&gt;&lt;\/th&gt;\r\n\t\t\t&lt;\/tr&gt;\r\n\r\n\r\n\t\t\t\t&lt;tr&gt;\r\n\t\t\t\t\t&lt;td valign=\"top\"&gt;\r\n\t\t\t\t\t\t  &lt;ul id=\"column-1\"&gt;\r\n\t\t\t\t\t\t    &lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Francois HOLLANDE&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t    &lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Nicolas SARKOZY&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t    &lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Jean-Pierre CHEVENEMENT&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t    &lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Fran&ccedil;ois BAYROU&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t    &lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Herv&eacute; MORIN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Corinne LEPAGE&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Dominique de VILLEPIN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Eva JOLY&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Jean-Luc MELENCHON&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Fr&eacute;d&eacute;ric NIHOUS&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Marine LE PEN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Christine BOUTIN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;li class=\"CandidatName\"&gt;&lt;h5&gt;Nicolas DUPONT-AIGNAN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t&lt;\/ul&gt;\r\n\t\t\t\t&lt;\/td&gt;\r\n\r\n\t\t\t\t\t&lt;td&gt;\r\n\t\t\t\t  \t\t&lt;ul id=\"column-2\"&gt;\r\n\t\t\t\t  \t\t&lt;\/ul&gt;\r\n\t\t\t\t\t&lt;\/td&gt;\t\r\n\t\t\t\t&lt;\/tr&gt;\r\n\t\t&lt;\/table&gt;\r\n\t\t&lt;\/div&gt;\r\n\r\n\r\n\t&lt;\/body&gt;\r\n\t&lt;\/html&gt;\r\n\t\r\n\t\r\n<\/pre>\n<h4>Enregistrement de l&#8217;\u00e9tat des listes tri\u00e9es<\/h4>\n<p>L&#8217;\u00e9tape ultime est d&#8217;utiliser JQuery pour s\u00e9rialiser nos valeurs ordonnanc\u00e9es et  les envoyer dans une boite d&#8217;alerte. En lieu et place de la boite d&#8217;alerte, cela pourrait \u00eatre un script php qui permettrait l&#8217;insertion dans une base de donn\u00e9es.<br \/>\nCeux sont les attributs <code>title<\/code> de nos &lt;li&gt; qui vont \u00eatre pass\u00e9s dans une chaine nomm\u00e9e <code>OrderCandidates[]<\/code>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2012\/01\/jquery_drag_and_drop_5.jpg\" alt=\"jQuery, javascript, s\u00e9lection et filtrage - Filtrer et s\u00e9lectionner avec jQuery\" width=\"500\" height=\"265\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" src=\"https:\/\/flaven.fr\/wp-content\/uploads\/2012\/01\/jquery_drag_and_drop_6.jpg\" alt=\"jQuery, javascript, s\u00e9lection et filtrage - Filtrer et s\u00e9lectionner avec jQuery\" width=\"500\" height=\"265\" \/><\/p>\n<pre lang=\"html\" escaped=\"true\">\r\n\t&lt;script src=\"jQuery.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n\t&lt;script src=\"jQueryUI.js\" type=\"text\/javascript\" charset=\"utf-8\"&gt;&lt;\/script&gt;\r\n\t&lt;script type='text\/javascript'&gt;\r\n\r\n\t$(document).ready(\r\n\t  function() {\t  \r\n\t    var $selectedFile;\r\n\r\n\t    $('li.CandidatName').mousedown(\r\n\t      function() {\r\n\t        if ($selectedNameCandidat &amp;&amp; $selectedNameCandidat.length) {\r\n\t          $selectedNameCandidat.removeClass('CandidatNameSelected');\r\n\t        }\r\n\r\n\t        $selectedNameCandidat = $(this);        \r\n\t        $selectedNameCandidat.addClass('CandidatNameSelected');\r\n\t      }\r\n\t    );\r\n\r\n\t    var saveUpdate = function(e, ui) {\r\n\t      var $data = $(this).sortable(\r\n\t        'serialize', {\r\n\t          attribute: 'title',\r\n\t          expression: \/^(.*)$\/,\r\n\t          key: 'OrderCandidates[]'\r\n\t        }\r\n\t      );\r\n\r\n\t      alert($data);\r\n\r\n\t    \/\/ Ici vous pouvez placer une requete ajax vers\r\n\t\t\/\/ un script sur votre serveur\r\n\t      \/\/ $.get('\/chemin\/vers\/le_serveur\/fichier.php', $data);\r\n\t    };\r\n\r\n\t    $('ul#column-1').sortable({\r\n\t      connectWith : [\r\n\t        'ul#column-2'\r\n\t      ],\r\n\t      placeholder: 'CandidatNamePlaceholder',\r\n\t      opacity: 0.8,\r\n\t      cursor: 'move',\r\n\t      update: saveUpdate\r\n\t    });\r\n\r\n\t    $('ul#column-2').sortable({\r\n\t      connectWith : [\r\n\t        'ul#column-1'\r\n\t      ],\r\n\t      placeholder: 'CandidatNamePlaceholder',\r\n\t      opacity: 0.8,\r\n\t      cursor: 'move',\r\n\t      update: saveUpdate\r\n\t    });\r\n\t  }\r\n\t);\r\n\r\n\t&lt;\/script&gt;\r\n\t&lt;style&gt;\r\n\r\n\thtml,\r\n\tbody {\r\n\t    width: 100%;\r\n\t    height: 100%;    \r\n\t}\r\n\tbody {\r\n\t    font: normal 12px \"Lucida Grande\", Arial, sans-serif;\r\n\t    color: rgb(50, 50, 50);\r\n\t    margin: 0;\r\n\t    padding: 0;\r\n\t\tbackground: #ccc;\r\n\t}\r\n\tdiv#hcontainer {\r\n\t    position: absolute;\r\n\t    top: 0;\r\n\t    right: 0;\r\n\t    bottom: 23px;\r\n\t    left: 0;\r\n\t}\r\n\tul#column-1,\r\n\tul#column-2 {\r\n\t    float: left;\r\n\t    height: 800px;\r\n\t    width: 300px;\r\n\t    border-bottom: 1px solid #666666;\r\n\t    border-right: 1px solid #666666;\r\n\t    background: #fff;\r\n\t    list-style: none;\r\n\t    margin: 0;\r\n\t    padding: 0;\r\n\t}\r\n\r\n\r\n\tli.CandidatName {\r\n\t    clear: both;\r\n\t    padding: 5px 5px 10px 5px;\r\n\t    min-height: 48px;\r\n\t    width: 290px;\r\n\t}\r\n\tli.CandidatName h5 {\r\n\t    font: normal 12px \"Lucida Grande\", Arial, sans-serif;\r\n\t    margin: 0;\r\n\t}\r\n\th5.CandidatName {\r\n\t    padding-left: 55px;\r\n\t}\r\n\tli.CandidatNameSelected {\r\n\t    \/*background: #F6177B;*\/\r\n\t    color: white;\r\n\t}\r\n\t.CandidatNamePlaceholder {\r\n\t    \/*background: #999;*\/\r\n\t\tbackground: #F6177B;\r\n\t    height: 58px;\r\n\t}\r\n\r\n\t&lt;\/style&gt;\r\n\t&lt;\/head&gt;\r\n\t&lt;body&gt;\r\n\r\n\t\t    &lt;div id=\"hcontainer\"&gt;\r\n\t\t\t&lt;table border=\"0\"&gt;\r\n\t\t\t\t&lt;tr&gt;\r\n\t\t\t\t\t&lt;th&gt;&lt;h1&gt;Candidats&lt;\/h1&gt;&lt;\/th&gt;\r\n\t\t\t\t\t&lt;th&gt;&lt;h1&gt;R&eacute;sultats&lt;\/h1&gt;&lt;\/th&gt;\r\n\t\t\t\t&lt;\/tr&gt;\r\n\r\n\r\n\t\t\t\t\t&lt;tr&gt;\r\n\t\t\t\t\t\t&lt;td valign=\"top\"&gt;\r\n\t\t\t\t\t\t\t  &lt;ul id=\"column-1\"&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"nicolas_sarkozy\"&gt;&lt;h5&gt;Nicolas SARKOZY&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t    &lt;li class=\"CandidatName\" title=\"jean_pierre_chevenement\"&gt;&lt;h5&gt;Jean-Pierre CHEVENEMENT&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t    &lt;li class=\"CandidatName\" title=\"francois_bayrou\"&gt;&lt;h5&gt;Fran&ccedil;ois BAYROU&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t    &lt;li class=\"CandidatName\" title=\"herve_morin\"&gt;&lt;h5&gt;Herv&eacute; MORIN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"corinne_lepage\"&gt;&lt;h5&gt;Corinne LEPAGE&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"dominique_de_villepin\"&gt;&lt;h5&gt;Dominique de VILLEPIN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"eva_joly\"&gt;&lt;h5&gt;Eva JOLY&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"jean_luc_melenchon\"&gt;&lt;h5&gt;Jean-Luc MELENCHON&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t    &lt;li class=\"CandidatName\" title=\"francois_hollande\"&gt;&lt;h5&gt;Francois HOLLANDE&lt;\/h5&gt;&lt;\/li&gt;\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"frederic_nihous\"&gt;&lt;h5&gt;Fr&eacute;d&eacute;ric NIHOUS&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"marine_le_pen\"&gt;&lt;h5&gt;Marine LE PEN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"christine_boutin\"&gt;&lt;h5&gt;Christine BOUTIN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t\t&lt;li class=\"CandidatName\" title=\"nicolas_dupont_aignan\"&gt;&lt;h5&gt;Nicolas DUPONT-AIGNAN&lt;\/h5&gt;&lt;\/li&gt;\r\n\t\t\t\t\t\t\t&lt;\/ul&gt;\r\n\t\t\t\t\t&lt;\/td&gt;\r\n\r\n\t\t\t\t\t\t&lt;td&gt;\r\n\t\t\t\t\t  \t\t&lt;ul id=\"column-2\"&gt;\r\n\t\t\t\t\t  \t\t&lt;\/ul&gt;\r\n\t\t\t\t\t\t&lt;\/td&gt;\t\r\n\t\t\t\t\t&lt;\/tr&gt;\r\n\t\t\t&lt;\/table&gt;\r\n\t\t\t&lt;\/div&gt;\r\n\t\r\n<\/pre>\n<h2>En savoir plus<\/h2>\n<ul>\n<li>Le site jQuery, notre librairie JavaScript favorite<br \/>\n\t<a href=\"http:\/\/jquery.com\/\" target=\"_blank\">http:\/\/jquery.com\/<\/a><\/li>\n<li>Tout ce que l&#8217;on doit savoir pour \u00eatre <code>sortable()<\/code><br \/>\n\t<a href=\"http:\/\/jqueryui.com\/demos\/sortable\/\" target=\"_blank\">http:\/\/jqueryui.com\/demos\/sortable\/<\/a><\/li>\n<li>Dynamic Drag\u2019n Drop With jQuery And PHP<br \/>\n\t<a href=\"http:\/\/www.webresourcesdepot.com\/dynamic-dragn-drop-with-jquery-and-php\/\" target=\"_blank\">http:\/\/www.webresourcesdepot.com\/dynamic-dragn-drop-with-jquery-and-php\/<\/a>\n\t\t<\/li>\n<li>Using jQuery or MooTools For Drag, Drop, Sort, Save<br \/>\n\t\t<a href=\"http:\/\/davidwalsh.name\/mootools-drag-ajax\" target=\"_blank\">http:\/\/davidwalsh.name\/mootools-drag-ajax<\/a>\n\t\t\t<\/li>\n<li>Drag &amp; Drop with PHP &amp; jQuery<br \/>\n\t\t\t<a href=\"http:\/\/papermashup.com\/drag-drop-with-php-jquery\/\" target=\"_blank\">http:\/\/papermashup.com\/drag-drop-with-php-jquery\/<\/a>\n\t\t\t\t<\/li>\n<li>How to save the state of a drag and drop jQuery UI Sortables front end layout editor?<br \/>\n\t\t\t<a href=\"http:\/\/wordpress.stackexchange.com\/questions\/16342\/how-to-save-the-state-of-a-drag-and-drop-jquery-ui-sortables-front-end-layout-ed\" target=\"_blank\">http:\/\/wordpress.stackexchange.com\/questions\/16342\/how-to-save-the-state-of-a-drag-and-drop-jquery-ui-sortables-front-end-layout-ed<\/a>\n\t\t\t\t<\/li>\n<li>Use jQuery and PHP to build an Ajax-driven Web page\t<br \/>\n\t\t\t\t<a href=\"http:\/\/www.ibm.com\/developerworks\/opensource\/library\/os-php-jquery-ajax\/index.html\" target=\"_blank\">http:\/\/www.ibm.com\/developerworks\/opensource\/library\/os-php-jquery-ajax\/index.html<\/a>\n\t\t\t\t\t<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>On connait tous forc\u00e9ment des expressions anglophones c\u00e9l\u00e8bres en musique notamment Rock and Roll, R&#8217;n&#8217;B, Twist and Shout&#8230; Dans le d\u00e9veloppement avec jQuery, celle qui&hellip; <\/p>\n<p class=\"text-center\"><a href=\"https:\/\/flaven.fr\/2012\/01\/jquery-javascript-glisser-deposer-glisser-deposer-trier-enregistrer-avec-jquery\/\" class=\"more-link\">Continue reading &rarr; <span class=\"screen-reader-text\">jQuery, javascript, Glisser-d\u00e9poser &#8211; Glisser-d\u00e9poser, Trier, Enregistrer avec jQuery<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":9407,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"bf_ai_meta_description":"Le glisser-d\u00e9poser avec jQuery permet de trier et enregistrer des \u00e9l\u00e9ments. Ma\u00eetrisez les outils pour des r\u00e9sultats efficaces.","bf_ai_og_title":"Glisser-d\u00e9poser jQuery","footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":false,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[3444,3447,3449,3451,3435],"tags":[420,138,403,226,2190,404,106,421],"class_list":["post-2102","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming-databases","category-technology-trends","category-tutorials-how-to","category-web-design-front-end","category-web-development","tag-candidats","tag-developpement","tag-fonction","tag-javascript","tag-jquery","tag-methode","tag-plugin","tag-presidentiel"],"jetpack_publicize_connections":[],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p3Vuhl-xU","jetpack_featured_media_url":"https:\/\/flaven.fr\/wp-content\/uploads\/2012\/01\/jquery_drag_and_drop_b_2_g_bf.jpg","_links":{"self":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/2102","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/comments?post=2102"}],"version-history":[{"count":1,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/2102\/revisions"}],"predecessor-version":[{"id":9408,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/posts\/2102\/revisions\/9408"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media\/9407"}],"wp:attachment":[{"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/media?parent=2102"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/categories?post=2102"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/flaven.fr\/happy-api\/wp\/v2\/tags?post=2102"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}