Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Redirección y Pasar Variable desde PHP

Estas en el tema de Redirección y Pasar Variable desde PHP en el foro de Javascript en Foros del Web. Estoy creando un Alert de Confirmación para eliminar un registro de la base de datos, El funcionamiento es simple, si el usuario presiona en "eliminar", ...
  #1 (permalink)  
Antiguo 08/12/2015, 16:04
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Redirección y Pasar Variable desde PHP

Estoy creando un Alert de Confirmación para eliminar un registro de la base de datos,

El funcionamiento es simple, si el usuario presiona en "eliminar", le aparece un alert que le pregunta si está seguro de eliminar el registro, para eso estoy haciendo lo siguiente:

Código Javascript:
Ver original
  1. <script language="Javascript">
  2. //Creo una función para pasar la variable desde php a Javascript y luego pasarla por url a la página que elimina
  3. function eliminar(){
  4. //paso la variable de php a JS
  5.     var idbodega = "<?php echo $row['idbodega']; ?>" ;
  6. //Redirecciono para eliminar
  7. location.href=elimina_bodega.php?id="+idbodega";
  8. }
  9.  
  10. function preguntar(){
  11. confirmar=confirm("¿Está Seguro de eliminar esta Bodega?");
  12. if (confirmar)
  13. //Si confirma ejecuto la función para eliminar
  14. eliminar();
  15. else
  16. //Si cancela no hace nada
  17.  
  18. }
  19. </script>

Pero resulta que no hace nada, el script para generar la ventana de confirmación lo obtuve de las faqs y es este

Código Javascript:
Ver original
  1. <html>
  2. <head>
  3. <script language="Javascript">
  4. function preguntar(){
  5. confirmar=confirm("¿Eres mayor de edad?");
  6. if (confirmar)
  7. //Aquí pones lo que quieras si da a Aceptar
  8. alert('Diste a Aceptar')
  9. else
  10. //Aquí pones lo que quieras Cancelar
  11. alert('Diste a Cancelar')
  12. }
  13. </script>
  14. </head>  
  15. <body>
  16. <a href="java script:preguntar()">Cuidao que muerdo</a>
  17. </body>
  18. </html>

Cuando lo ejecuto así tal cual funciona sin problema, sin embargo, cuando lo ejecuto como lo adapté no hace nada.
__________________
Say no more.......
  #2 (permalink)  
Antiguo 08/12/2015, 18:49
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirección y Pasar Variable desde PHP

Por la impresión del dato que haces con PHP, presumo que lo obtienes de una base de datos. Si ese fuera el caso, podrías imprimirlo como valor de un enlace:
Código PHP:
Ver original
  1. ?>
  2. <a href = "elimina_bodega.php?id="<?=$row['idbodega']?>" class = "delete">Eliminar</a>

Y el proceso se realizaría así:
Código Javascript:
Ver original
  1. document.addEventListener("click", function(event){
  2.     //Si el elemento al que se le dio el clic posee la clase "delete"
  3.     if (event.target.className == "delete"){
  4.         event.preventDefault(); //Cancelas la redirección
  5.         if (confirm("¿Desea eliminar este dato?")){ //Si confirma la eliminación
  6.             location = event.target.href; //Se realiza la redirección
  7.         }
  8.     }
  9. }, false);

Lo anterior consiste en delegar el evento click al documento, tomar al elemento en el que produjo el evento, verificar que posea la clase en cuestión, cancelar la redirección (el comportamiento natural del enlace), preguntar al usuario si desea eliminar el dato y realizar la redirección si confirma esta acción.

Como se trabaja delegando el evento al documento y con una clase en particular, esto te sirve tanto para uno como para muchos enlaces. Incluso si los añades de forma dinámica.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 08/12/2015, 19:24
 
Fecha de Ingreso: agosto-2015
Ubicación: En Carúpano
Mensajes: 49
Antigüedad: 8 años, 8 meses
Puntos: 12
Respuesta: Redirección y Pasar Variable desde PHP

En tu código hay un problema en la concatenación y el uso de variables

Código Javascript:
Ver original
  1. function eliminar(){
  2.     var idbodega = "<?php echo $row['idbodega']; ?>" ;
  3.  
  4. //Aquí tenias un error en la concatenación y en el uso de la variable
  5. //que habías definido en la linea anterior
  6.  
  7. location.href="elimina_bodega.php?id="+idbodega;
  8. }
  9.  
  10. function preguntar(){
  11. confirmar=confirm("¿Está Seguro de eliminar esta Bodega?");
  12.  
  13. //Yo preferiblemente le pongo las llaves a mis estructuras if y else
  14. //es un poco mas sencillo de entender Para Mi
  15.  
  16. if (confirmar){
  17. eliminar();
  18. }else{
  19.  
  20. }
  21. }
  #4 (permalink)  
Antiguo 09/12/2015, 08:17
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: Redirección y Pasar Variable desde PHP

Probé las dos alternativas y ninguna funcionó, con la de Alexis solo pasa la variable sin que exista la ventana de confirmación y con la de larry no hace nada, voy a probar si pasando la variable a travez de input tipo hidden, lo que no estoy seguro es como recibir ese input en JS.
__________________
Say no more.......
  #5 (permalink)  
Antiguo 09/12/2015, 10:27
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirección y Pasar Variable desde PHP

Error mío. El enlace debe ser así:

Código PHP:
Ver original
  1. ?>
  2. <a href = "elimina_bodega.php?id=<?=$row['idbodega']?>" class = "delete">Eliminar</a>

Tenía unas comillas de más. De cualquier modo, se debe de mostrar la ventana de confirmación y realizar la redirección.

DEMO

Para efectos del ejemplo, utilizo el método window.open() ya que no puedo realizar la redirección desde esa página, pero en tu caso, si estás trabajando todo bajo el mismo dominio, con window.location te basta.

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Última edición por Alexis88; 09/12/2015 a las 10:36 Razón: DEMO
  #6 (permalink)  
Antiguo 09/12/2015, 14:28
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: Redirección y Pasar Variable desde PHP

Probé tu ejemplo y funcionó, ahora creo que el problema es mio.

el href lo tengo asi:

Código PHP:
Ver original
  1. echo "<td><a class='btn btn-default delete' aria-label='Left Align' href='elimina_bodega.php?id=$bode' ><span class='glyphicon glyphicon-trash' aria-hidden='true'></span></a></td>";

y el script en el head asi

Código Javascript:
Ver original
  1. <script language="Javascript">
  2. document.addEventListener("click", function(event){
  3.     //Si el elemento al que se le dio el clic posee la clase "delete"
  4.     if (event.target.className == "delete"){
  5.         event.preventDefault(); //Cancelas la redirección
  6.         if (confirm("¿Desea buscar este dato en Google?")){ //Si confirma la eliminación
  7.             window.open(event.target.href); //Se realiza la redirección
  8.         }
  9.     }
  10. }, false);
  11. </script>

Creo que el problema va a estar en las clases que le estoy aplicando al href, esas clases las utilizo para darle estilo, como lo podria solucionar?
__________________
Say no more.......
  #7 (permalink)  
Antiguo 09/12/2015, 15:32
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Redirección y Pasar Variable desde PHP

Como tienes varias clases, puedes buscar a la clase en cuestión con el método .indexOf():
Código Javascript:
Ver original
  1. if (event.target.className.indexOf("delete") > -1){
  2.     //...
  3. }

Un saludo
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #8 (permalink)  
Antiguo 09/12/2015, 18:35
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: Redirección y Pasar Variable desde PHP

Nada, no funciona, lo tengo asi.

Código Javascript:
Ver original
  1. <script language="Javascript">
  2. document.addEventListener("click", function(event){
  3.     //Si el elemento al que se le dio el clic posee la clase "delete"
  4.     if (event.target.className.indexOf("delete") > -1){
  5.         event.preventDefault(); //Cancelas la redirección
  6.         if (confirm("¿Está seguro de eliminar esta Bodega?")){ //Si confirma la eliminación
  7.             window.open(event.target.href); //Se realiza la redirección
  8.         }
  9.     }
  10. }, false);
  11. </script>
__________________
Say no more.......
  #9 (permalink)  
Antiguo 09/12/2015, 20:51
Avatar de el_cesar  
Fecha de Ingreso: mayo-2001
Ubicación: Cali
Mensajes: 2.423
Antigüedad: 23 años
Puntos: 20
Respuesta: Redirección y Pasar Variable desde PHP

Listo, solucionado, al parecer era un error de sintaxis mio.

El script definitivo fué este:

Código PHP:
Ver original
  1. echo "<td><a href = 'elimina_bodega.php?idbo=$bode' class = 'delete' title='Eliminar'><span class='glyphicon glyphicon-trash' aria-hidden='true'></span></a></td>";

Código Javascript:
Ver original
  1. <script language="Javascript">
  2. document.addEventListener("click", function(event){
  3.     //Si el elemento al que se le dio el clic posee la clase "delete"
  4.     if (event.target.className == "delete"){
  5.         event.preventDefault(); //Cancelas la redirección
  6.         if (confirm("¿Está seguro de eliminar esta bodega?")){ //Si confirma la eliminación
  7.             window.open(event.target.href); //Se realiza la redirección
  8.         }
  9.     }
  10. }, false);
  11. </script>

Muchas Gracias
Cita:
Iniciado por Alexis88 Ver Mensaje
Alexis88
__________________
Say no more.......

Etiquetas: funcion, html, js, php, variable
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 00:19.