2011-08-17 19 views
15

Im tratando de replicar la funcionalidad de esta página (http://www.kissfm.ro/fresh-top-40/) para un amigo que tiene una pequeña radio web. El sitio está configurado en wordpress fyi.save jquery ui-sortable position to DB

Así que mi pregunta es, después de buscar Stackoverflow, ¿cómo puedo guardar/obtener los gráficos revisados ​​en función de la entrada de los usuarios? encontré cómo guardar solo las presentaciones, pero ¿cómo obtengo los gráficos finales según la elección del usuario?

¡Gracias de antemano! (código o enlace a la bienvenida tutorial!)

Respuesta

31

hacer su HTML ordenable, agregar javascript y guardarlo en php en la actualización.

<ul id="sortable"> 
    <li id="1">elem 1</li> 
    <li id="2">elem 2</li> 
    <li id="3">elem 3</li> 
    <li id="4">elem 4</li> 
</ul> 

$(document).ready(function(){ 
    $('#sortable').sortable({ 
     update: function(event, ui) { 
      var newOrder = $(this).sortable('toArray').toString(); 
      $.get('saveSortable.php', {order:newOrder}); 
     } 
    }); 
}); 
+0

gracias! el truco fue el mismo, aunque nos llevó otro día descubrir cómo guardar cada presentación y obtener los valores medianos. – user899163

+4

¿Debería usar una publicación en lugar de una obtención ya que está modificando los datos en el servidor? Además, ¿qué sucede si el servidor de guardar no es exitoso? tal vez debería usar el método beforeStop y emitir una cancelación en el orden si el servidor de guardar falla? – Ryan

4

Sé que esto es viejo, pero lo que hago es simplemente agregar un elemento de campo oculto en cada LI. Todos tendrían el mismo nombre con [] al final. De esta manera, cuando publique el formulario que contiene la UL, obtendrá una matriz en sus valores de publicación en el orden en que acaba de colocar su lista.

0

De acuerdo con los documentos Clasificables, tenemos que anteponer el ID de LI con alguna cadena. Luego, si serializamos el ordenable en el método de actualización obtendremos una buena matriz en php, p. new_order [] = 1 & new_order [] = 2, etc.

var data = $(this).sortable('serialize'); 

<ul id="sortable"> 
    <li id="new_order_1">elem 1</li> 
    <li id="new_order_2">elem 2</li> 
    <li id="new_order_3">elem 3</li> 
    <li id="new_order_4">elem 4</li> 
</ul> 
0
You may POST with input to DB and save it 
Here we go: 
<ul id="sortable"> 
    <li id="1"><input type ="text" value="elem 1"/></li> 
    <li id="2"><input type="text" value="elem 2"/></li> 
    . 
    . 
</ul> 
<style> 
#sortable{ 
    border: hidden; 
} 
</style> 
$(document).ready(function(){ 
    $('#sortable').sortable({ 
     update: function(event, ui) { 
      var newOrder = $(this).sortable('toArray').toString(); 
      $.get('saveSortable.php', {order:newOrder}); 
     } 
    }); 
}); 

creo que sirve;)