2010-06-16 19 views
0

Im suivant quelques tutoriels pour trier une liste, mais je ne peux pas obtenir la base de données à mettre à jour. Le côté abaissable de traînée des choses fonctionne, je aussi javascript alert() la liste serialize onUpdate et l'ordre est imprimé comme suit:Sortable avec des problèmes scriptaculeux

images_list[]=20&images_list[]=19 etc ...

Ainsi, le tri et traînage fonctionne très bien , je ne peux pas obtenir la base de données à mettre à jour, ceci est mon code.

<script type="text/javascript"> 
    Sortable.create("images_list", { 
     onUpdate: function() { 
      new Ajax.Request("processor.php", { 
       method: "post", 
       parameters: { data: Sortable.serialize("images_list") } 
      }); 
     } 
    }); 

Code processor.php:

//Connect to DB 
require_once('connect.php'); 

parse_str($_POST['data']); 

for ($i = 0; $i < count($images_list); $i++) { 
    $id = $images_list[$i]; 
    mysql_query("UPDATE `images` SET `ranking` = '$i' WHERE `id` = '$id'"); 
} 

Toutes les idées serait génial, merci!

+1

ce que vous avez essayé de faire pour débugger? Avez-vous vérifié dans Firebug que la requête AJAX est en cours? avez-vous sorti les requêtes SQL générées pour vérifier leur validité? – robjmills

Répondre

0

Vous avez peut-être d'autres balises dans vos éléments pour le tri. je voudrais ajouter une balise: '':

<script type="text/javascript"> 
    Sortable.create("images_list", { 
     onUpdate: function() { 
      new Ajax.Request("processor.php", { 
       method: "post", 
       parameters: { data: Sortable.serialize("images_list") } 
      }); 
     }, 
     tag: 'span' 
    }); 
    </script> 

En outre je voudrais vérifier le chemin d'accès à votre processor.php. J'utilise:

new Ajax.Request("/youdir/processor.php", { 

(A partir de DocumentRoot)