web-dev-qa-db-fra.com

La liste triable Jquery ne sera pas sérialisée, pourquoi?

J'implémente une liste d'images triable avec jquery dans une application Zend Framework. Je n'arrive pas à obtenir la méthode .sortable ('serialize') pour retourner plus 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 enveloppé dans diverses autres balises? Je pense que ça ne devrait pas. La liste non ordonnée doit ê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);
        }                         
    });
});
38
markus

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

Si serialize renvoie une chaîne vide, assurez-vous que les attributs id incluent un trait de soulignement . Ils doivent être sous la forme: "set_number" Par exemple, une liste de 3 éléments avec des attributs id foo_1, foo_5, foo_2 sera sérialisée 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 nombre. Par exemple, foo = 1 ou foo-1 ou foo_1 sont tous sérialisés en foo [] = 1.

97
jeroen.verhoest

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

Les identifiants ne sont pas autorisés à commencer par un nombre. Ils peuvent contenir des chiffres, mais pas comme premier caractère.

8
Lathan

(mise à jour du lien) salut, 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

1
DukeDrake