38 votes

La liste triable de Jquery ne se sérialise pas, pourquoi ?

J'implémente une liste d'images triables avec jquery dans une application Zend Framework. Je n'arrive pas à faire en sorte que la méthode .sortable('serialize') renvoie autre chose qu'une chaîne vide.

Lorsque j'essaie avec quelques exemples simples en dehors de mon application, cela fonctionne.

Est-il important que l'extrait ci-dessous soit entouré de plusieurs autres balises ? Je pense que ça ne devrait pas. La liste non ordonnée devrait être trouvée juste par l'identifiant, non ?

HTML :

<ul id="mylist">
    <li id="1">
        <div>
            <img src="image_1.jpg" />
            <p class="value_item">some text</p>
        </div>
    </li>
    <li id="2">
        <div>
            <img src="image_2.jpg" />
            <p class="value_item">some text</p>
        </div>
    </li>
</ul>

JavaScript :

$(document).ready(function() {                 
    $('#mylist').sortable({ 
        update: function() {
            var order = $('#mylist').sortable('serialize');
            alert(order);
        }                         
    });
});

97voto

jeroen.verhoest Points 3852

http://api.jqueryui.com/sortable/#method-serialize

Si serialize renvoie une chaîne vide, assurez-vous que les attributs id comprennent un trait de soulignement. . Ils doivent être sous la forme : "set_number" Par exemple, une liste de 3 éléments avec les attributs id foo_1, foo_5, foo_2 sera sérialisé en foo[]=1&foo[]=5&foo[]=2. Vous pouvez utiliser un trait de soulignement, un signe égal ou un trait d'union pour séparer l'ensemble et le numéro. Par exemple, foo=1 ou foo-1 ou foo_1 sont sérialisés en foo[]=1.

8voto

Lathan Points 646

Jquery rencontre des problèmes lorsque vous utilisez des identifiants non conformes.

Les identifiants ne doivent pas commencer par un chiffre. Ils peuvent contenir des chiffres, mais pas comme premier caractère.

1voto

DukeDrake Points 11

(mise à jour du lien) Bonjour, je suis tombé sur un problème similaire il y a quelques jours, bien que dans mon cas il était important de garder l'ordre des éléments intact. J'ai codé un petit plugin qui vous permettra de sérialiser des listes ul et ol de profondeur et de complexité arbitraires :

serializeTree

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X