2009-06-08 9 views
35

Estoy implementando una lista ordenable de imágenes con jquery en una aplicación de Zend Framework. Simplemente no puedo obtener el método .sortable ('serialize') para devolver más que una cadena vacía.La lista ordenable de Jquery no se serializará, ¿por qué?

Cuando intento con unos simples ejemplos fuera de mi aplicación, funciona.

¿Importa que el fragmento a continuación esté envuelto en varias etiquetas y otras? Creo que no debería. La lista desordenada debe encontrarse solo con la identificación, ¿verdad?

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); 
     }       
    }); 
}); 

Respuesta

94

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

Si serializar devuelve una cadena vacía, Asegúrese de que los atributos id incluyen un guión. Deben tener el formato: "set_number" Por ejemplo, una lista de 3 elementos con atributos de id foo_1, foo_5, foo_2 se serializarán en foo [] = 1 & foo [] = 5 & foo [] = 2. Puede usar un guión bajo, signo igual o guión para separar el conjunto y el número. Por ejemplo foo = 1 o foo-1 o foo_1 todos serializar a foo [] = 1.

+0

sí, gracias! – markus

+0

sí - ¡resolvió mi problema también! – PhoebeB

+0

sí, eso también solucionó mi problema. Eso significa que todos los ejemplos de soluciones de tablas ordenables de jquery aquí en stackoverflow son incorrectos. – CDR

8

Jquery tiene problemas cuando utiliza identificadores no conformes.

Ids no pueden comenzar con un número. Pueden tener números en ellos, pero no como el primer personaje.

1

(link update) hola, me encontré con un problema similar hace unos días, aunque en mi caso era importante mantener el orden de los elementos intactos. Codifiqué un pequeño plugin que le permitirá a serializar listas ul y ol de profundidad y complejidad arbitraria:

serializeTree

Cuestiones relacionadas