jQuery: Que faire avec la liste renvoyable (sérialisation)?
Avec jQuery, je suis de la récupération de positions une liste triée en utilisant "sérialiser", comme ceci:
var order = $('ul').sortable('serialize');
La variable "ordre" reçoit alors le suivant:
id[]=2&id[]=3&id[]=1&id[]=4&id[]=5
Maintenant, comment puis-je utiliser ces données dans un appel ajax?
C'est comment j'ai l'intention de le faire, mais c'est moche et je ne peux pas changer le nom du paramètre 'id':
$.post('ajax.php?'+order,{action:'updateOrder'});
Peut-être que j'ai besoin de unserialize, puis d'imploser la variable "ordre" et de l'attribuer à un seul paramètre?
Je n'ai pas de problème avec le serveur de code côté, mais j'ai un problème avec le jQuery client code de site. La question est, où dois-je placer "l'ordre" de la variable dans le script?
Dans l'exemple que j'ai donné je l'ai ajouté comme une chaîne de requête:
'ajax.php?'+order
Mais je voudrais passer en tant que paramètre, tout comme le paramètre d'action. Le suivant ne fonctionne pas, il renvoie une erreur de syntaxe:
$.post('ajax.php?'+order,{action:'updateOrder',order});
source d'informationauteur bart
Vous devez vous connecter pour publier un commentaire.
Trouvé! J'ai besoin d'ajouter l'option
key:'string'
qui change le nom de la variable de 'string' au lieu de 'id'.Je pense que la meilleure façon est de ne pas utiliser
sortable('serialize')
à tous, mais l'utilisation de jQuery pour simplement effectuer une itération sur l'triés id, comme suit:Ce qui a un avantage plus explicitement l'ajout de la sérialisé sortable à l'URL (ou un paramètre) en ce qu'elle ne comprend pas les
order[]
paramètre si il n'y a pasli
dans la liste. (Quand j'ai eu ce problème j'ai été en utilisantsortable(connectWith: 'ul')
il était donc tout à fait possible pour un utilisateur de faire glisser tous lesli
à partir d'une liste). En revanche l'ajout de la sérialisé sortable laisser un indésirable " &".Permet de dire que vous étiez de la commande des articles de nouvelles, et votre page envoyé "?id[]=2&id[]=3&id[]=1&id[]=4&id[]=5" votre code php.
ce serait trop 😉
La meilleure façon est de savoir utiliser var
order = $('ul').sortable('serialize');
fonctionnalité est indiqué dans le lien suivant :http://blog.arnaud-k.fr/2010/09/29/tutorial-jquery-trier-une-liste-en-dragndrop-avec-jqueryui-sortable/
Tous vous avez besoin pour obtenir la liste ordonnée des données dans votre fichier php est le code :
Concernant la "clé" param j'ai utilisé les crochets afin d'obtenir un tableau.
Solution
J'ai créé mon propre solution en manipulant sortable('sérialiser'). J'ai simplifié en utilisant des fonctions jquery, puis publié sur php url pour la mise à jour de l'ordre de la liste dans la base de données. Jetez un oeil à mon code.
Acclamations
si les données sont
$data = 'album[]=stat&sort[]=157204&sort[]=157205&sort[]=157206&sort[]=157208&sort[]=157207&sort[]=157209&sort[]=157210&sort[]=157211&sort[]=157212&sort[]=157213';
et que vous souhaitez obtenir de sorte que array en php
utilisation parse_str()
parse_str($data, $output);
print_r($output);
De sortie :
Tableau
(
[album] => Array
(
[0] => stat
)
)