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

 
Vista:

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

Publicado por Kasius (1 intervención) el 29/02/2012 14:12:32
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
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 :

$(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
//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]);
}
?>
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder