Bonjour,
J'ai modifier mon code de cette manière mais et je sauvegarde l'ordre.
Mais le souci dès que j'actualise ma page l'ordre disparaît. Merci pour votre aide !
<!-- HTML -->
<div class="container">
<div class="block" data-id="1">
<h4>Heading 1</h4>
<p>Splendida porro oculi fugitant vitantque tueri. sol etiam caecat, contra si tendere pergas,propterea quia vis magnast ipsius et altea�ra per purum simulacra ferunturet feriunt oculos turbantia composituras.</p>
</div>
<div class="block" data-id="2">
<h4>Heading 2</h4>
<p>Splendida porro oculi fugitant vitantque tueri. sol etiam caecat, contra si tendere pergas,propterea quia vis magnast.</p>
</div>
<div class="block" data-id="3">
<h4>Heading 3</h4>
<p>Splendida porro oculi fugitant vitantque tueri. sol etiam caecat, contra si tendere pergas,propterea quia vis magnast.</p>
</div>
<div class="block" data-id="4">
<h4>Heading 4</h4>
<p>Splendida porro oculi fugitant vitantque tueri. sol etiam caecat, contra si tendere pergas,propterea quia vis magnast ipsius et altea�ra per purum simulacra ferunturet feriunt oculos turbantia composituras.</p>
</div>
<div class="block" data-id="5">
<h4>Heading 5</h4>
<p>Splendida porro oculi fugitant vitantque tueri. sol etiam caecat, contra si tendere pergas,propterea quia vis magnast.</p>
</div>
<div id="nscrol">
<a id="dnd" class="bouton2">update</a>
<a id="cancel" class="bouton2 cacher">back</a>
<a id="reset" class="bouton3 cacher">reset</a>
<a id="record" class="bouton cacher">save</a>
</div>
</div>
$(document).ready(function(){
$('#nscrol').on('click','#dnd',function(e){
e.preventDefault();
$(this).fadeOut('slow',function(){
$(this).siblings().fadeIn('slow').css("display", "inline-block");
});
// ajoute la propriété pour le drop et le transfert de données
$.event.props.push('dataTransfer');
$('.block').attr('draggable',true).css('outline','1px solid green').find('*').attr('draggable',false);
var i, dragged, class_name;
var traitement = false;
$('.block').on({
dragstart:function(e){
if(!traitement){
dragged = $(this);
i = dragged.index();
class_name = dragged.attr('class');
dragged.css('opacity', '0.5');
e.dataTransfer.setData('text/html',dragged.html());
}
},
dragenter:function(e){
e.preventDefault();
},
dragleave:function(){
},
dragover:function(e){
e.preventDefault();
},
drop:function(e){
var dropzone = $(this);
if(typeof(dropzone)=='undefined'||dropzone.get(0)==dragged.get(0)){
e.preventDefault();
return false;
}
if(!traitement){
var data = e.dataTransfer.getData('text/html');
if(dropzone.index()<=i){
dropzone.before(dragged);
}else{
dropzone.after(dragged);
}
}
},
dragend:function(){
$(this).css('opacity','1');
},
click:function(e){
e.preventDefault();
}
});
}).on('click','#cancel',function(){
$('.block').off().css('outline','none');
$('[draggable]').removeAttr('draggable');
$('#dnd').siblings().fadeOut('slow', function(){
$('#dnd').fadeIn('slow');
});
}).on('click','#record',function(){
var len = $('.block').length;
var ordre = [];
var me = $(this);
for(var j=0;j<len;j++){
ordre.push({id:$('.entree_block').eq(j).data("id"),rang:$('.entree_block').eq(j).index('.entree_block')});
}
$.ajax({
type: "POST",
url: window.location.origin+"/news/orderUpdate.php",
data: {ordre:JSON.stringify(ordre)},
beforeSend:function(){
var img = '<img id="load" src="'+window.location.origin+'/news/iconLoading.gif" style="height:22px;margin-left:15px;margin-right:118px;vertical-align:middle;">';
($('#msg').length)?$('#msg').replaceWith(img):me.after(img);
},
success:function(){
$('#load').replaceWith('<b id="msg" style="margin-left:5px;">Changements enregistrés.</b>');
}
});
}).on('click','#reset',function(){
$.ajax({
type: "POST",
url: window.location.origin+"//orderUpdate.php",
data: {reset:true},
success:function(){
window.location.reload();
}
});
});
});
// orderUpdate.php
require_once('db.php');
$ordre = isset($_REQUEST['ordre'])?$_REQUEST['ordre']:'';
$reset = isset($_REQUEST['reset'])?$_REQUEST['reset']:'';
if (!empty($ordre)){
// Décode le JSON
$json_data = json_decode($ordre);
foreach($json_data as $v){
$code_id = $v->id;
$rang = $v->rang;
$q = array('code'=>$code_id, 'rand'=>$rang);
$sql = 'INSERT INTO ordre (code_id, rand) VALUES (:code, :rand)';
$req = $db->prepare($sql);
$req->execute($q) or die(print_r($req->errorInfo()));
}
} elseif (!empty($reset)){
$q = array('code'=>$code_id);
$sql = 'DELETE FROM tbl_module_ordre WHERE code_id = :code';
$req = $db->prepare($sql);
$req->execute($q) or die(print_r($req->errorInfo()));
}