Foros del Web » Programando para Internet » Jquery »

Borrar un dato con Ajax y jquery

Estas en el tema de Borrar un dato con Ajax y jquery en el foro de Jquery en Foros del Web. Tengo un problema para borrar un dato de la base de datos y no sé cómo resolverllo. Las cosas están así: Enlace que manda la ...
  #1 (permalink)  
Antiguo 18/08/2011, 14:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 7 meses
Puntos: 0
Borrar un dato con Ajax y jquery

Tengo un problema para borrar un dato de la base de datos y no sé cómo resolverllo.

Las cosas están así:
Enlace que manda la señal al script js
<div class="borrado">
<a href="#" class="borrar" id="1">Borrar</a>
</div>
Script que utiliza jquery
Código:
<script type="text/javascript" src="js/jquery.js"></script>

<script type="text/javascript" 
$(function() {

$(".delbutton").click(function(){
var del_id = element.attr("id");
var info = 'id=' + del_id;
if(confirm("Desea borrar esto?"))
{
$.ajax({
type: "POST",
url: "borrar.php",
data: info,
success: function(){
}
});
$(this).parents(".borrado").animate({ backgroundColor: "#fbc7c7" }, "fast")
.animate({ opacity: "hide" }, "slow");
}
return false;
});
});
</script
Archivo: borra.php
Código:
<?php
include("dbconfig.php");
if($_POST['id'])
{
$id=$_POST['id'];
$sql = "delete from datos where id='$id'";
mysql_query( $sql);
}
?>
Lo que quiero hacer es que además de recibir el id (es decir el 1), también reciba el número de lampágina que se está viendo, por ejemplo 2, pero no sé cómo enviar ese valor, en un <input> con hidden o no sé; esa es la cuestión, ¿Cómo envío dos valores al dar click en el enlace de borrar?

Espeor su ayuda y gracias!
  #2 (permalink)  
Antiguo 18/08/2011, 15:29
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Borrar un dato con Ajax y jquery

Hola Geze.

Puede que este un poco perdido pero lo que no veo es alguna referencia a la pagina que estas viendo...

En tu codigo, hay alguna referencia de esa pagina? o es segun la URL mostrada? o....

P.D:
es que creo que haces dos preguntas diferentes...

Cita:
Iniciado por Geze Ver Mensaje
pero no sé cómo enviar ese valor, en un <input> con hidden o no sé
Como recogerla, puedes recogerla como comentas (supongo que no habria problema en hacer eso) o incluso (creo) que desde el mismo js podrias hacerlo, por ejemplo, un "document.location" creo que te iria bien...(si con saber "que pagina" te refieres a la URL)


Cita:
Iniciado por Geze Ver Mensaje
¿Cómo envío dos valores al dar click en el enlace de borrar?
Ahora, esto es otra cosa. Para concatenar dos valores en el envio, utilizas "&" entre cada variable y listo.
ej:
Código Javascript:
Ver original
  1. data: "dato1="+valor1+"&dato2"+valor2,

No se si estoy contestando a tus preguntas o era otra historia lo que pedias...

Última edición por oms02; 18/08/2011 a las 15:39
  #3 (permalink)  
Antiguo 18/08/2011, 15:53
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Borrar un dato con Ajax y jquery

Gracias por responder.
Sí, mira, estoy intentando hacer lo que muestra este blog, pero aquí sólo envía el valor que tenga el id. Lo que yo quiero es enviar dos valores, el del id y otro más, el probelma es que no sé cómo cambiar el JS y el html para que reciba esos dos valores. ¿Me entiendes?
  #4 (permalink)  
Antiguo 18/08/2011, 16:32
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Borrar un dato con Ajax y jquery

vale, ya entiendo.

No te lo tomes a mal Geze, pero dale un repaso mas a la teoria pq es muy facil hacerlo.

Mira, en tu html, el segundo valor que quieres enviar debe figurar en la alguna parte. Alguna referencia, algo...vale?? Danos alguna pista de "donde se encuentra", ok??

Supuesto lo conseguimos sacar, voy a ponerte un ejemplillo.

Vamos a imaginarnos que figura en un input (cuando comentes donde se encuentra este dato, modificaremos esta parte del codigo para adecuarlo a tu peticion).

Código HTML:
Ver original
  1. <input type="text" id="paginaX" value="valor_pag_X"/>

Ahora, en el archivo .js que tienes, recogemos los 2 valores (el que has recogido y el nuevo que vamos a mandar tb).Tienes que agregar esto:

Código Javascript:
Ver original
  1. var del_id = element.attr("id");
  2. var var2 =$("#paginaX").val();
  3. var info = 'id=' + del_id+'&var2'=var2;

Ahora, cuando te llevas estas dos variables, ya no se como quieres procesarlas, vale? Eso ya, o lo tienes que hacer tu segun el criterio que quieras, o bien, tendras que decir como quieres hacer exactamente la consulta para que se elimine el dato que quieres, pero recogerla, la recoges exactamente igual que la otra (id).

Código PHP:
Ver original
  1. $pagina = $_POST['var2'];

ok???

Última edición por oms02; 18/08/2011 a las 16:42
  #5 (permalink)  
Antiguo 18/08/2011, 18:45
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Borrar un dato con Ajax y jquery

No me lo tomo a mal, gracias por la ayuda.
Bien, he seguido tus indicaciones, pero no consigo hacerlo, acá está todo el código...

index.php
Código:
<div class="dato_tabla">
 <?php echo $pag_dato; ?>
  <a href="javascript:void(0);" class="borrar_dato" id="<?php echo $id_dato; ?>">X</a>
  <input type="hidden" class="id_pagina" value="<?php echo $id_pag; ?>">
</div>
borrardato.js
Código:
$(function() 
{
  $(".borrar_dato").click(function()
  {
    var id_dato = element.attr("id");
    var id_pag = $(".id_pagina").val();
    var informacion = 'id_dato=' + id_dato + '&id_pag' + id_pag;
    if(confirm("Delete?"))
      {
        $.ajax({
        type: "POST",
        url: "borrardato.php",
        data: informacion,
        success: function(){}
        });
        $(this).parents(".dato_tabla").animate({ backgroundColor: "#fbc7c7" }, "fast")
        .animate({ opacity: "hide" }, "slow");
      }
     return false;
     });
});
borrardato.php
Código:
<?php
//config de la DataBase
  include("db.php");
  if($_POST)
  {
	$id_dato = $_POST['id_dato'];
	$id_pag = $_POST['id_pag'];
	mysql_query("delete from datos where   iden='$id_dato'",$db);
        mysql_query("update paginas set iden=iden+1 where iden_pag='$id_pag'",$db); 
    mysql_close($db);
  }
?>
Yo supongo que el problema está el intentar capturar el valor del input hidden en el javascript, pero si utilizo algo como:
<input type="hidden" id="id_pagina<?php echo $id_pag; ?>" value="<?php echo $id_pag; ?>">
Entonces en el Js, cómo sabré que cambia el valor final? Así
var id_pag = $("#id_pagina"+valor).val();


La cosa es que ni siquiera me da el alert de Js; espero me puedas ayudar y muchas gracias por tu atención. :)

Última edición por Geze; 18/08/2011 a las 18:54
  #6 (permalink)  
Antiguo 18/08/2011, 20:02
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Borrar un dato con Ajax y jquery

Cita:
Iniciado por Geze Ver Mensaje
Yo supongo que el problema está el intentar capturar el valor del input hidden en el javascript...
No, eso esta bien. Dejalo asi.

Prueba estos cambios:

aqui hay un errorcillo. '&id_pag' no tiene el "="
Código Javascript:
Ver original
  1. var informacion = 'id_dato=' + id_dato + '&id_pag=' + id_pag;


en el .js mete las animaciones que dan lugar al borrado del link dentro de la opcion 'success', asi:
Código Javascript:
Ver original
  1. if(confirm("Delete?"))
  2.       {
  3.         $.ajax({
  4.         type: "POST",
  5.         url: "borrardato.php",
  6.         data: informacion,
  7.         success: function(){
  8.         $(this).parents(".dato_tabla").animate({ backgroundColor: "#fbc7c7" }, "fast")
  9.         .animate({ opacity: "hide" }, "slow");
  10.         }
  11.         });
  12.       }


Ahora en el archivo borrardato.php, no pongas a secas $_POST. Prueba mejor a escribirlos de manera explicita, por ejemplo asi:

Código PHP:
Ver original
  1. if($_POST['id_dato'] AND $_POST['id_pag'])

Última edición por oms02; 18/08/2011 a las 20:07
  #7 (permalink)  
Antiguo 18/08/2011, 20:35
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Borrar un dato con Ajax y jquery

Ya puse todos los arreglos que me dijiste y hasta pena me está dando :S pues no consigo hacerlo funcionar :S
  #8 (permalink)  
Antiguo 19/08/2011, 06:10
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Borrar un dato con Ajax y jquery

Que hay Geze.

Mira, he probado el codigo y tp me salia. No soy gran cosa en js asi que cuando he visto en anteriores mensajes "element", he dado por hecho que se trataba de algo propio de js, pero he probado a cambiarlo y funciona.

Cambialo por esto:
Código Javascript:
Ver original
  1. var id_dato = $(this).attr("id");
  #9 (permalink)  
Antiguo 19/08/2011, 14:18
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Borrar un dato con Ajax y jquery

Una vez más, te estoy agredecido por la atención que has dado :)

Pues ahora sí funciona, pero no hace el efecto del success, no sé a qué se deba, pues icnluso intenté cambiar el div por uno con un id único así:

JS
Código:
        success: function()
        {
	     $(this).parents("#dato_animation_"+ comt_id).animate({ backgroundColor: "#fbc7c7" }, "fast").animate({ opacity: "hide" }, "slow");
	    }
Y cada dato ponderlo entre:
Código:
<div id='dato_animation_<?php echo $dato_id; ?>'>

Espero pueda resolverlo pronto y mil gracias.
  #10 (permalink)  
Antiguo 19/08/2011, 17:13
 
Fecha de Ingreso: junio-2010
Mensajes: 373
Antigüedad: 14 años, 4 meses
Puntos: 11
Respuesta: Borrar un dato con Ajax y jquery

Hola Geze.

Pues es que he cometido un fallo.

'success', (si se desea) ejecuta una funcion en respuesta al codigo ejecutado en la llamada al servidor (al fichero donde estes mandando esos datos). Es decir, si quieres que por ejemplo, tras borrarse el mensaje, se escriba algo asi como: "el mensaje ha sido borrado" (en ese caso, deberias escribir en ese archivo echo 'el mensaje ha sido borrado').

Al no hacer eso, no necesitas la opcion 'success', por lo tanto puedes borrar esa linea de codigo (no te olvides de borrar la coma anterior, la del 'data').

De esta forma, efectivamente, la animacion debia ir fuera del 'success' (como tenias inicialmente).

1 saludo y disculpa el fallo.
  #11 (permalink)  
Antiguo 19/08/2011, 19:34
 
Fecha de Ingreso: marzo-2010
Mensajes: 151
Antigüedad: 14 años, 7 meses
Puntos: 0
Respuesta: Borrar un dato con Ajax y jquery

Mil gracias, oms02!
Ahora funciona perfecto :D
Te mando muchos saludos, Karma y las gracias por toda tu ayuda. Hata pronto ^_^
  #12 (permalink)  
Antiguo 02/10/2012, 21:27
 
Fecha de Ingreso: septiembre-2012
Mensajes: 1
Antigüedad: 12 años, 2 meses
Puntos: 0
Respuesta: Borrar un dato con Ajax y jquery

Hola GEZE necesitaria si por favor podrias pasarme el codigo que tenes para poder eliminar dato da una base de datos mediante un enlace ya que segui los pasos y no me funciono muy agradecido.

Etiquetas: ajax, borrar, dato, javascript, mysql, php, post
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 12:56.