J'ai un probleme avec ajax. J'ai une galerie que je peux trier avec jquery ui sortable. J'ai une fonction qui mets à jour mes indices. J'ai bien mon ordre d'images à entrer dans ma BDD mais lorsque je bouge plusieurs images ajax envoie autant de requête que je bouge d'images.
J'aimerais qu'il ne fasse la requête qu'un seule fois ou à chaque déplacements d'images ou à la fin du tri.
Mon code :
$(function(){
$("#element1").sortable({
containment: "#container",
start:function(event, ui) {
ui.item.startPos = ui.item.index();
},
update: function(event, ui) {
//alert('je suis la');
var idLi = ui.item.attr('id');
var idSplitLi = idLi.split("_");
var indice = idSplitLi[1];
$('#indicePhoto_'+indice).val(ui.item.index());
if(ui.item.startPos<ui.item.index()){
for(var i=(ui.item.startPos+1);i<=ui.item.index();i++){
$('#indicePhoto_'+i).val(i-1);
}
}else if(ui.item.startPos>ui.item.index()){
for(var j=ui.item.index();j<=(ui.item.startPos-1);j++){
$('#indicePhoto_'+j).val(j+1);
}
}else{
$('#indicePhoto_'+indice).val(ui.item.startPos);
}
},
deactivate: function( event, ui ) {
var data = $('.indicePhoto').serialize();
//alert(data);
$.ajax({
type: "POST",
url: $('#form_ordre').attr('action'),
data: data,
success : 'ok',
//dataType: html
});
}
});
});
J'aimerais qu'il ne fasse la requête qu'un seule fois ou à chaque déplacements d'images ou à la fin du tri.
Mon code :
$(function(){
$("#element1").sortable({
containment: "#container",
start:function(event, ui) {
ui.item.startPos = ui.item.index();
},
update: function(event, ui) {
//alert('je suis la');
var idLi = ui.item.attr('id');
var idSplitLi = idLi.split("_");
var indice = idSplitLi[1];
$('#indicePhoto_'+indice).val(ui.item.index());
if(ui.item.startPos<ui.item.index()){
for(var i=(ui.item.startPos+1);i<=ui.item.index();i++){
$('#indicePhoto_'+i).val(i-1);
}
}else if(ui.item.startPos>ui.item.index()){
for(var j=ui.item.index();j<=(ui.item.startPos-1);j++){
$('#indicePhoto_'+j).val(j+1);
}
}else{
$('#indicePhoto_'+indice).val(ui.item.startPos);
}
},
deactivate: function( event, ui ) {
var data = $('.indicePhoto').serialize();
//alert(data);
$.ajax({
type: "POST",
url: $('#form_ordre').attr('action'),
data: data,
success : 'ok',
//dataType: html
});
}
});
});