Ver Mensaje Individual
  #14 (permalink)  
Antiguo 05/05/2011, 05:22
alexg88
 
Fecha de Ingreso: abril-2011
Mensajes: 1.342
Antigüedad: 13 años
Puntos: 344
Respuesta: Seleccionar orden de elementos de la lista

Primero de todo, necesitas crear una columna nueva en la tabla de tipo entero que sea el orden de elemento (lo vamos a llamar orden).

Aquí es donde buscas las categorías, fíjate en la consulta:

Código PHP:
Ver original
  1. <?php
  2. mysql_select_db($database_pallki_banner, $pallki_banner);
  3. $query_rs_categoria = "SELECT * FROM categorias ORDER BY orden ASC";
  4. $rs_categoria = mysql_query($query_rs_categoria, $pallki_banner) or die(mysql_error());
  5. $row_rs_categoria = mysql_fetch_assoc($rs_categoria);
  6. $totalRows_rs_categoria = mysql_num_rows($rs_categoria);
  7. ?>

Aquí el código PHP de la página que muestra las categorías:

Código PHP:
Ver original
  1. <table id="tabla_sortable" width="700" border="1" align="center" cellpadding="2" cellspacing="0" bordercolor="#CCCCCC">
  2. <tr>
  3. <td colspan="3" class="texto"><div align="center" style="margin-bottom:10px; margin-top:10px;">LISTADO DE CATEGORIAS</div></td>
  4. </tr>
  5.  
  6. <tr>
  7. <td width="214" bgcolor="#CCCCCC" class="texto">Categor&iacute;as</td>
  8. <td width="280" bgcolor="#CCCCCC" class="texto">Estado</td>
  9. <td width="184" bgcolor="#CCCCCC">&nbsp;</td>
  10. </tr>
  11. <tr>
  12. <td height="10" colspan="3"></td>
  13. </tr>
  14. <?php do { ?>
  15. <tr id="categoria_<?php echo $row_rs_categoria['codcategoria']?>">
  16. <td class="texto"><?php echo $row_rs_categoria['nom_categoria']; ?></td>
  17. <td class="texto"><?php echo $row_rs_categoria['estado']; ?></td>
  18. <td class="texto"><a href="modificar_categoria.php?codcategoria=<?php echo $row_rs_categoria['codcategoria']; ?>">Modificar</a> / <a href="eliminar_categoria.php?codcategoria=<?php echo $row_rs_categoria['codcategoria']; ?>">Eliminar</a></td>
  19. </tr>
  20. <?php } while ($row_rs_categoria = mysql_fetch_assoc($rs_categoria)); ?>
  21. <tr>
  22. <td height="10" colspan="3"></td>
  23. </tr>
  24. </table>
  25.  
  26. <input id="boton_act" type="button" value="Actualizar" />

El código Javascript que se encarga de permitir ordenar y enviar los datos
de la lista al servidor:

Código Javascript:
Ver original
  1. $('#tabla_sortable').sortable({axis:'y',items:'tr'});
  2.  
  3. $('#boton_act').click(function(){
  4.  
  5. $.ajax({
  6.   type : 'POST',
  7.   data: ({orden : $('#tabla_sortable').sortable('serialize');})
  8.   url: "actualizar_orden.php",  
  9.   success: function(){
  10.     $("#informacion").html("Se ha actualizado correctamente");
  11.   },
  12.   error: function(){
  13.     $("#informacion").html("No se ha actualizado correctamente");
  14.   }
  15.  
  16. });
  17.  
  18. });


Te faltaría crear el archivo actualizar_orden.php:

Código PHP:
Ver original
  1. <?php
  2.  
  3. parse_str($_POST['orden']);
  4.  
  5. for
  6. for ($i = 0; $i < count($categoria); $i++){
  7.  mysql_select_db($database_pallki_banner, $pallki_banner);
  8. $query_rs_categoria = "UPDATE categorias SET orden = ".$i."WHERE id =".$categoria[$i];
  9. //No se si esta bien del todo puesta la consulta (las comillas y todo eso).
  10. mysql_query($query_rs_categoria, $pallki_banner) or die(mysql_error());
  11.    
  12. }
  13. ?>

Más o menos sería así.