Foros del Web » Programando para Internet » Jquery »

[SOLUCIONADO] Dudas crear array dinamico de lista

Estas en el tema de Dudas crear array dinamico de lista en el foro de Jquery en Foros del Web. Muy buenas, he creado una lista (ul) para que la gente ordene sus preferencias(li) y con jquery hago que esta lista se pueda mover, exactamente ...
  #1 (permalink)  
Antiguo 03/06/2014, 06:04
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años
Puntos: 4
Pregunta Dudas crear array dinamico de lista

Muy buenas, he creado una lista (ul) para que la gente ordene sus preferencias(li) y con jquery hago que esta lista se pueda mover, exactamente con este codigo:

Código HTML:
Ver original
  1. <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
  2.         <script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
  3.         <script src="https://raw.github.com/furf/jquery-ui-touch-punch/master/jquery.ui.touch-punch.min.js"></script>
  4.         <script>
  5.             $(function() {
  6.                 $( "#categories" ).sortable();
  7.                 $( "#categories" ).disableSelection();
  8.             });
  9.         </script>

esta linea:
<script src="https://raw.github.com/furf/jquery-ui-touch-punch/master/jquery.ui.touch-punch.min.js"></script>

es para que funcione en móviles (y todo va fino).

Pero ahora me planteo. ¿como puedo crear un array dinamicamente que guarde las posiciones de las distintas opciones? para luego enviarlas mediante un formulario.

Agradeceria unos links a explicaciones de esto, o referencias a manuales para poder aprenderlo y aplicarlo.

Muchas gracias por vuestro tiempo.
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #2 (permalink)  
Antiguo 03/06/2014, 07:04
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años
Puntos: 4
Respuesta: Dudas crear array dinamico de lista

Despues de investigar ya he conseguido crear un array y que las cosas se muevan.

Ahora solo me faltarian 2 cosas, como le puedo decir para que en onclick actualize el orden del array y si podria guardar otro dato que seria el nombre de la clase, pero eliminando la palabra item (así ya tendría su posición original).

Aqui el codigo que me esta funcionand hasta ahora (si podeis me guiais y me decis si voy bien encaminado o lo estoy haciendo mal)

Código HTML:
<!doctype html>
<html lang="en">
<head>
	<script src="http://code.jquery.com/jquery-1.9.1.js"></script>    
	<script src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>   
	<script src="https://raw.github.com/furf/jquery-ui-touch-punch/master/jquery.ui.touch-punch.min.js"></script> 
	<script>
	  $(function() {
		$( ".documents" ).sortable();
		$( ".documents" ).disableSelection();
	  });
	</script>
  <meta charset="utf-8">
  <title>toArray demo</title>
  <style>
  span {
    color: red;
  }
  </style>
</head>
<body>
 
Reversed - <span></span>
 
<ul class="documents">
<li class="item_1">uno</li>
<li class="item_2">dos</li>
<li class="item_3">tres</li>
</ul>
 
<script>
function disp( li ) {
  var a = [];
  for ( var i = 0; i < li.length; i++ ) {
    a.push( li[ i ].innerHTML );
  }
  $( "span" ).text( a.join( " " ) );
}
 
disp( $( "li" ).toArray() );
</script>
 <input type="button" value="actualizar_array" onclick="disp( li )" />
</body>
</html> 
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.
  #3 (permalink)  
Antiguo 03/06/2014, 09:39
 
Fecha de Ingreso: agosto-2013
Mensajes: 150
Antigüedad: 10 años, 7 meses
Puntos: 29
Respuesta: Dudas crear array dinamico de lista

Prueba:
Código Javascript:
Ver original
  1. $(document).ready(function() {
  2.  
  3.         $(function() {
  4.           $(".documents").sortable();
  5.           $(".documents").disableSelection();
  6.         });
  7.  
  8.         function disp(li) {
  9.           var array = [];
  10.           for (var i = 0; i < li.length; i++) {
  11.             array.push(li[i].innerHTML);
  12.             array.push($("li")[i].className.slice(5));
  13.           }
  14.           $("span").text(array.join(" "));
  15.         }
  16.  
  17.         $('#boton').on('click', function() {
  18.           disp($("li").toArray());
  19.         })
  20.       });
Código HTML:
Ver original
  1. Reversed - <span></span>
  2.     <ul class="documents">
  3.       <li class="item_1">uno</li>
  4.       <li class="item_2">dos</li>
  5.       <li class="item_3">tres</li>
  6.     </ul>
  7.     <input type="button" id="boton" value="actualizar_array" />
  #4 (permalink)  
Antiguo 04/06/2014, 03:32
 
Fecha de Ingreso: marzo-2008
Ubicación: En casa
Mensajes: 252
Antigüedad: 16 años
Puntos: 4
Respuesta: Dudas crear array dinamico de lista

Muchas gracias, estaba mal hecho el script por que si había cualquier otro UL-LI en la pagina me lo tomaba como parte del array, así que he rehecho el código, mas abajo esta.
como podras ver tu ayuda me ha venido genial para solventar, lo de la posición con tu linea de código ha quedado resuelto.


Código Javascript:
Ver original
  1. $(function () {
  2.                 $("#opciones").sortable();
  3.                 $("#opciones").disableSelection();
  4.                 updateOrder();
  5.                 $("#sortButton").click(sortClick);
  6.             });
  7.  
  8.             $('#opciones').sortable().bind('sortupdate', function () {
  9.                 updateOrder();
  10.             });
  11.             function updateOrder() {
  12.                 var orderArray = [];
  13.  
  14.                 $("#opciones li").each(function (i, el) {
  15.                     orderArray.push($(el).text());
  16.                     orderArray.push($("li")[i].className.slice(5));
  17.                 });
  18.  
  19.                 $("#display").text(orderArray.join(" "));
  20.                
  21.                
  22.             }
  23.  
  24.            function sortClick() {
  25.                 updateOrder();
  26.                 var serializedArr = JSON.stringify( orderArray );
  27.                 $("#display").text("click: " + $("#display").text());
  28.             }

Código HTML:
Ver original
  1. <ul>
  2.     <li>rompe</li>
  3. </ul>
  4. <span id="display"></span>
  5.  
  6. <ul id="opciones">
  7.     <li class="item_1">Item 1</li>
  8.     <li class="item_2">Item 2</li>
  9.     <li class="item_3">Item 3</li>
  10.     <li class="item_4">Item 4</li>
  11.     <li class="item_5">Item 5</li>
  12.     <li class="item_5">Item 6</li>
  13.     <li class="item_6">Item 7</li>
  14. </ul>
  15. <p><input type="button" value="actualizar_array" id="sortButton"/></p>
__________________
Ayudar cuesta mucho, dar las gracias no tanto, tenlo en cuenta siempre.

Etiquetas: dinamico, dudas, formulario, funcion, javascript, js, lista, select
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:06.