Comunidad de diseño web y desarrollo en internet online

Jquery sortable() -> Ajax/Php - No actualiza registros

Citar            
MensajeEscrito el 29 Feb 2012 12:47 pm
Buenas!
Les cuento que estoy con un inconveniente y necesito ayuda para resolverlo.

Tengo un panel de administracion de un sitio, en el cual utilizado sortable() para ordenar las posiciones en la BD y asi mostrar el contenido en la web de acuerdo al orden elegido.
Al arrastrar un elemento y soltarlo en otro placeholder, se produciría el update que actualiza envia por ajax las variables a php.

El tema es que no logro hacer llegar las variables a mi php, y la bd queda exactamente igual cuando actualizo el navegador (por mas que intente destruirla ingresando datos en blanco)..

les muestro lo que tengo asi se dan una idea:
este es el php+html:

Código PHP :

<?php
include $root . 'include/bd.php';
                
$fwk_query = mysql_query("SELECT idCliente, cliente, posicion, descripcion, ruta FROM clientes ORDER BY posicion ASC");
            
$i = 1;
echo '<ul id="sortme">';
while($query_clientes = mysql_fetch_array($fwk_query)) {
        echo "<li id='cliente_".$query_clientes['idCliente']."'>
        <div class='pos'># " . $query_clientes['posicion'] . "&nbsp;</div>
        <div class='cliente'>" . $query_clientes['cliente'] . "&nbsp;</div>
        <div class='descripcion'>" . $query_clientes['descripcion'] . "&nbsp;</div>
        <div class='imagen'>" . $query_clientes['ruta'] . "&nbsp;</div>
        <div class='botonera'>
                <a title='Modificar información' class='icon editar' href='admin_clientes_edita.php?id=". $query_clientes['idCliente'] ."&oldPos=" . $query_clientes['posicion'] . "&oldCl=" . $query_clientes['cliente'] . "&oldDe=" . $query_clientes['descripcion'] . "'>f</a>
                <a title='Modificar imagen' class='icon photo'>f</a>";
                
                $confirm = '"Seguro quieres eliminar a ' . $query_clientes['cliente'] . ' de la lista? \n\n Esta acción no podrá deshacerse."';
                echo "<a title='Eliminar cliente' class='icon eliminar' onclick='return confirm(".$confirm.")' href='ingresa.php?accion=1&id=". $query_clientes['idCliente'] ."&ruta=". $query_clientes['ruta'] ."&pos=" . $query_clientes['posicion'] . "&cl=" . $query_clientes['cliente'] . "&de=" . $query_clientes['descripcion'] . "'></a>
        </div>
        <div class='clear'></div>
</li>";
                  $i++;
                }
            echo '</ul>';
            echo '<input type="hidden" name="tabla" id="tabla" readonly="readonly" value="clientes" />';
                ?>


el codigo jquery que utilizo:

Código Javascript :

$(document).ready(function(){
   // Ahora continuemos
   // Obtenemos el valor del campo que contiene el nombre de la tabla utilizando 
   var tabla=document.getElementById("tabla").value;
   // Asociamos a la lista (que llamamos sortme) a la función sortable de JQuery UI 
   $("#sortme").sortable({
      update : function () { 
   // creamos la función que se encargará de actualizar las posiciones de los elementos
   // Separamos (serializar) los elementos individuales de la lista 
         serial = $('#sortme').sortable('serialize');
   // Lo próximo por hacer es asignar los valores predeterminados de los datos que se enviarán 
         $.ajax({
            url: "includes/ordenar.php?tabla="+tabla, //asignamos la url del archivo que ordenará los elementos en la BD
            type: "GET", //especificamos el método por el que se envían los datos (POST o GET)
            data: serial,//asignamos los datos que obtuvimos al serializar los elementos
            error: function(){
               alert("Ocurrió un error al intentar ordenar los elementos");
            }//esta función la utilizamos en caso de algún problema
         })
      }
   })
})



y el archivo php que la recibe

Código PHP :

<?php
//ordenar
//realizamos nuestra conexión a la BD
$root = "../";
include $root . 'include/bd.php';
//obtenemos el array de id de elementos del listado
$cliente = $_GET['cliente'];
//obtenemos el nombre de la tabla que será modificada en la BD 
$tabla=$_GET['tabla'];
//el ciclo recorre los elementos del listado 1 a 1 para asignarles su nuevo orden

for ($i = 0; $i < count($cliente); $i++) {
   $query= mysql_query("UPDATE ".$tabla." SET posicion=".$i." WHERE idCliente=".$cliente[$i]);
} 
?>

Por kesioo

0 de clabLevel



 

firefox
Citar            
MensajeEscrito el 01 Mar 2012 02:08 pm
Comprueba esta línea

Código Javascript :

var tabla=document.getElementById("tabla").value;
Haz una alerta con el resultado y mira a ver si es el deseado

Código Javascript :

alert(tabla);
Si no es el deseado prueba a ponerlo así:

Código Javascript :

var tabla = $('#tabla').html();
Pruéba y nos comentas,
Un saludo!

Por Abducted

Claber

489 de clabLevel

3 tutoriales

Genero:Masculino  

Mentalidad Renovada

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.