Fonction drag and drop, limite du nombre de déplacements.

Eléphanteau du PHP | 38 Messages

10 mai 2016, 14:38

Bonjour,

J'ai initié une fonction drag and drop pour une liste de photos avec enregistrement en base de la position de chacune.
Ceci afin de pouvoir gérer/modifier au besoin l'ordre des photos de nos annonces.

Cela fait un moment que nous l'utilisons, et l'on vient de s'apercevoir d'un petit bug. En effet au bout d'un certain nombre de déplacement (5 ou 6), la fonction n'enregistre plus la position en base.

A l'écran la photo est bien déplacée, mais lorsqu'on enregistre et qu'on retourne sur l'annonce, seuls les 1er déplacements ont été mémorisés ..... comme si il y avait un nombre limite de déplacement.

Voici le code js :
<script src="http://code.jquery.com/jquery-1.8.2.js"></script>
<script src="http://code.jquery.com/ui/1.9.1/jquery-ui.js"></script>
<script type="text/javascript" src="<?php echo $mosConfig_live_site; ?>/administrator/components/com_realestatemanager/drag_and_drop/js/interface.js"></script>
<script type="text/javascript">
 
    $(document).ready (
        function () {
            $( "#sortlist" ).Sortable ( {
            accept : 'sortable_item',
            axis : 'vertically',
            opacity : 0.6,
            onchange : function ( sorted ) {
            serial = $.SortSerialize ( 'sortlist' ); 
            $.ajax ( {
                url : "<?php echo $mosConfig_live_site; ?>/administrator/components/com_realestatemanager/drag_and_drop/inc/set_position.php",
                type : "post",
                data : serial.hash,
 
                });
            }
 
        });
    });
 
</script>
Et la requête sql :
<?

	$mysqli = new mysqli($serveur, $user, $pass, $base);
	$db = mysql_connect('localhost', 'xxxx', 'xxxx');

	mysql_select_db('xxxx',$db) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
		
	$sql = "SELECT `id`, `position` FROM joomla_rem_photos ";
	$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());

	while($data = mysql_fetch_assoc($req))
	{
		$sortlist = $_POST['sortlist'];
			
		for ($i = 0; $i < count($sortlist); $i++) {
			
				$query = ("UPDATE joomla_rem_photos SET position ='".($i + 1)."' WHERE id=$sortlist[$i]");
				$ajout = mysql_query($query) or die(mysql_error());
			
		}
	}

?>
Merci de votre aide