Foros del Web » Programando para Internet » Jquery »

obtener el get de un enlace, con jquery

Estas en el tema de obtener el get de un enlace, con jquery en el foro de Jquery en Foros del Web. Hola a todos: Tengo una tabla con varios enlaces: <td><a class="efectoboton" href="sitio.php?id=1">Eliminar</a></td> <td><a class="efectoboton" href="sitio.php?id=2">Eliminar</a></td> <td><a class="efectoboton" href="sitio.php?id=3">Eliminar</a></td> Lo que quiero que haga es poder ...
  #1 (permalink)  
Antiguo 18/08/2011, 17:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
obtener el get de un enlace, con jquery

Hola a todos:

Tengo una tabla con varios enlaces:
<td><a class="efectoboton" href="sitio.php?id=1">Eliminar</a></td>
<td><a class="efectoboton" href="sitio.php?id=2">Eliminar</a></td>
<td><a class="efectoboton" href="sitio.php?id=3">Eliminar</a></td>


Lo que quiero que haga es poder eliminar el contenido de una base de datos de acuerdo al valor del id (sitio.php?id=1).

Al dar clic en el enlace, aparece el div advertencia, este contiene 2 botones, si y no. al hacer clic en No, se oculta el div. pero al hacer clic en "Si", se debe de borrar los datos por ajax. pero antes de hacer esto ultimo, estoy probando que el id sea el correcto.

Código HTML:
<div id="advertencia" class="ocultar"><b>¿ Realmente quiere Eliminarlo ?</b><br />
	<span id="no" class="no">NO</span>
	<span id="si" class="si"></span>
</div> 

Al hacer clic por primera vez, en el boton "Si", en el alert aparece correctamente el id que se debe eliminar, pero en la segunda vez, aparece el id anterior y el id reciente, si son tres veces, el alert aparece tres veces, etc., es decir toma los valores anteriores y el actual.

Me gustaria saber ¿cómo puedo modificar el código para que no repita los id anteriores.?


Código HTML:
<script type="text/javascript">
 $(document).ready(function(){
          $(".efectoboton a").bind('click',function(){
	//al hacer clic sobre el enlace se muestra una capa oculta
               // con los botones Si y No
	 $("#advertencia").addClass('mostrar');

              //Obtenemos la url del enlace
	     var url = $(this).attr('href'); 
	     var numero= url.split('id=');
	      var id=numero[1];                 //obtenemos el numero del id
	  			 
                 //al hacer clic en No, ocultamos de nuevo la capa de advertencia.
	 $("#advertencia #no").bind('click',function(){
	            $("#advertencia").removeClass('mostrar');
	    });

	//al hacer clic en Si, 
	  $("#advertencia #si").bind('click',function(){
	            				   
	              alert(id);   //Mostramos el id  /*** Se muestra varias veces   ***/
                          /* Procedimiento para eliminar de la DB

                          */
                           //ocultamos de nuevo la capa de advertencia
                             $("#advertencia").removeClass('mostrar');
  	            return false;
	    });
		   return false;
	})
		
});
</script> 
  #2 (permalink)  
Antiguo 18/08/2011, 17:20
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: obtener el get de un enlace, con jquery

estas asignando eventos click a los span #si y #no cada vez que se hace click en un enlace, por eso imprime tantos alerts como clicks vayas haciendo, prueba asi:

Código Javascript:
Ver original
  1. $(document).ready(function(){
  2.     var id;
  3.     $("a.efectoboton").bind('click',function(){
  4.  
  5.     //al hacer clic sobre el enlace se muestra una capa oculta
  6.                // con los botones Si y No
  7.      $("#advertencia").addClass('mostrar');
  8.  
  9.  
  10.           id=$(this).attr('href').split('id=')[1];                 //obtenemos el numero del id
  11.                    
  12.                  //al hacer clic en No, ocultamos de nuevo la capa de advertencia.
  13.      
  14.            return false;
  15.     })
  16.        
  17.     $("#advertencia #no").bind('click',function(){
  18.                 $("#advertencia").removeClass('mostrar');
  19.         });
  20.  
  21.     //al hacer clic en Si,
  22.       $("#advertencia #si").bind('click',function(){
  23.                                    
  24.                   alert(id);   //Mostramos el id  /*** Se muestra varias veces   ***/
  25.                           /* Procedimiento para eliminar de la DB
  26.  
  27.                           */
  28.                            //ocultamos de nuevo la capa de advertencia
  29.                              $("#advertencia").removeClass('mostrar');
  30.                   return false;
  31.         });
  32. });
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D
  #3 (permalink)  
Antiguo 18/08/2011, 18:04
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: obtener el get de un enlace, con jquery

Muchas Gracias Tredio

¡Ya funciona bien!
  #4 (permalink)  
Antiguo 18/08/2011, 22:22
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: obtener el get de un enlace, con jquery

En el mismo codigo que meciona tredio, solo agregue, al final, la siguiente linea:
$('#anunciosjq').load('componentes/phpjq/anunciosjq.php');
para poder mostrar una tabla dinamicamente.

Ahora el problema es que ya no hace lo del jquery.

Supongo que es debido a que ahora "no encuentra" la tabla donde esta
<td><a class="efectoboton" href="sitio.php?id=1">Eliminar</a></td>
y no puede realizar:
$(".efectoboton a").bind('click',function(){

¿Como se puede corregir esto?


Código:
 
     $("#advertencia #si").bind('click',function(){
       alert(id);
    // $('#anunciosjq').load('componentes/phpjq/anunciosjq.php');
     $("#advertencia").removeClass('mostrar');
                  return false;
        });
/*  Agregamos la tabla en el div con ID anunciosjq   */	  
 $('#anunciosjq').load('componentes/phpjq/anunciosjq.php');
  #5 (permalink)  
Antiguo 19/08/2011, 08:26
Avatar de tredio  
Fecha de Ingreso: noviembre-2008
Ubicación: Carabobo
Mensajes: 466
Antigüedad: 16 años, 1 mes
Puntos: 66
Respuesta: obtener el get de un enlace, con jquery

eso lo puedes solucionar con el live te dejo un link para que leas sobre eso:

http://api.jquery.com/live/
__________________
Extension Google Chrome
dar las gracias no cuesta nada :D
  #6 (permalink)  
Antiguo 28/08/2011, 13:21
 
Fecha de Ingreso: marzo-2009
Mensajes: 133
Antigüedad: 15 años, 8 meses
Puntos: 4
Respuesta: obtener el get de un enlace, con jquery

Solo modifique la linea 3

$("a.efectoboton").bind('click',function(){

cambie el bind por live:

$("a.efectoboton").live('click',function(){


Gracias.

Etiquetas: ajax, enlace, javascript, php
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 08:14.