Foros del Web » Programando para Internet » Javascript »

No funciona ventana de diálogo

Estas en el tema de No funciona ventana de diálogo en el foro de Javascript en Foros del Web. ¿Porqué no funciona el siguiente código Javascript?: Código PHP: < a href = "borrar_todos.php"  onclick = "return confirm('Todos los registros serán borrados definitivamente de la base de datos, ¿Desea continuar?');" > Borrar todos los registros </ a >  El código PHP lo ...
  #1 (permalink)  
Antiguo 07/08/2008, 15:08
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
No funciona ventana de diálogo

¿Porqué no funciona el siguiente código Javascript?:

Código PHP:
<a href="borrar_todos.php" onclick="return confirm('Todos los registros serán borrados definitivamente de la base de datos, ¿Desea continuar?');">Borrar todos los registros</a
El código PHP lo hace bien, va a borrar_todos.php y elimina todos los registros de la base de datos, ya que en este fichero está escrito:

Código PHP:
<?php
   
include("conexion/conexion.php");

   
$link=Conectar();

   
mysql_query("delete from copias",$link);
   
   
header("Location: index.php");
?>
Falla el onclick="return confirm('Todos los registros serán borrados definitivamente de la base de datos, ¿Desea continuar?');"

Sin embargo varias líneas más arriba lo utilizo con un href asociado a una imagen y sí funciona.

Gracias de antemano.
  #2 (permalink)  
Antiguo 07/08/2008, 15:10
Avatar de foreverOdd  
Fecha de Ingreso: noviembre-2007
Ubicación: Caracas
Mensajes: 489
Antigüedad: 16 años, 5 meses
Puntos: 14
Respuesta: No funciona ventana de diálogo

trata asi a ver:

onclick=" if (confirm('Todos los registros serán borrados definitivamente de la base de datos, ¿Desea continuar?')) this.form.submit();"
__________________
My path is lit by my own fire, I only go where I desire
  #3 (permalink)  
Antiguo 07/08/2008, 15:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: No funciona ventana de diálogo

Qué raro, yo lo copié tal y como está y funcionó (con un *.html). ¿Tienes certeza que no es problema del PHP?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #4 (permalink)  
Antiguo 07/08/2008, 15:17
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: No funciona ventana de diálogo

Funciona exactamente igual. No hace caso del código JavaScript pero ejecuta el borrado de datos.
  #5 (permalink)  
Antiguo 07/08/2008, 15:20
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: No funciona ventana de diálogo

¿Podrías poner el código HTML o un enlace a tu página?

P.S.: ¿Muestra el diálogo o no?, si no lo muestra quizás sea porque esté desactivado JavaScript.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #6 (permalink)  
Antiguo 07/08/2008, 15:20
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: No funciona ventana de diálogo

El código es correcto y debería funcionar. Estás seguro de que la salida html es exactamente como la escribiste?
  #7 (permalink)  
Antiguo 07/08/2008, 15:26
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: No funciona ventana de diálogo

Aquí funciona, que está antes:

Código PHP:
<table border=1 cellspacing=0 cellpadding=1>
<TR><TD><STRONG>&nbsp;Data&nbsp;</STRONG></TD><TD><STRONG>&nbsp;Professor&nbsp;</STRONG></TD><TD><STRONG>&nbsp;Departament&nbsp;</STRONG></TD><TD><STRONG>&nbsp;C&ograve;pies&nbsp;</STRONG></TD><TD><STRONG>&nbsp;&nbsp;</STRONG></TD></TR>
<?php      

   
while($row2 mysql_fetch_array($result2)) {
      
printf("<tr><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td><td>&nbsp;%s&nbsp;</td>
      <td>&nbsp;%s&nbsp;</td><td><a href=\"eliminar_registro.php?idcopias=%d\" onclick=\"return confirm('Este registre de fotocòpies serà esborrat definitivament, Desitja continuar?');\"><img border=0 src=\"http://www.forosdelweb.com/images/borrar.png\" title=\"Elimina registre\"></a></td></tr>"
$row2["Fecha"],$row2["Nombre"]." ".$row2["Apellidos"], 
      
$row2["Departamento"],$row2["Copias"], $row2["id"]);
   }
   
mysql_free_result($result2);
   
mysql_close($link);
?>
</table>
La diferencia es que aquí está dentro de un printf y cambia algo la sintaxis por lo de las comillas literales. Sin embargo en la primera que he puesto no.

La original (la que no devuelve la ventana de diálogo) es:

Código PHP:
<br><br>
<
hr width="800">
<
br>

<
a href="borrar_todos.php" onclick="return confirm('Tots els registres de fotocòpies seran eliminats de la base de dades. Esta operació només s'ha d'efectuar a l'inici de cada curs escolar, Desitja continuar?');">Esborrar tots els registres</a
  #8 (permalink)  
Antiguo 07/08/2008, 15:30
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: No funciona ventana de diálogo

Pregunto, en el segundo caso que mencionaste, ¿muestra el diálogo o no?.
¿No deberías pasar algún parámetro al PHP?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 07/08/2008, 15:34
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: No funciona ventana de diálogo

Te recomiendo que escapes la cadena que le pasás como argumento al confirm con esta función:
Código PHP:
function js_encode($s){
    
$texto='';
    
$lon=strlen($s);
    for(
$i=0;$i<$lon;++$i){
        
$num=ord($s[$i]);
        if(
$num<16$texto.='\x0'.dechex($num);
        else 
$texto.='\x'.dechex($num);
    }
    return 
$texto;

De esa manera no tendrás problemas con las comillas y otros caracteres.
  #10 (permalink)  
Antiguo 07/08/2008, 15:35
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: No funciona ventana de diálogo

La primera, que es el onclick que va dentro del printf, sí que funciona perfectamente. La segunda, que es esta:

Código PHP:
<br><br>
<
hr width="800">
<
br>

<
a href="borrar_todos.php" onclick="return confirm('Tots els registres de fotocòpies seran eliminats de la base de dades. Esta operació només s'ha d'efectuar a l'inici de cada curs escolar, Desitja continuar?');">Esborrar tots els registres</a
realiza el hipervínculo, va al otro fichero, borra los datos de la base de datos y retorna, pero no muestra la ventana de diálogo.
  #11 (permalink)  
Antiguo 07/08/2008, 15:37
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: No funciona ventana de diálogo

Código PHP:
<?php 
function js_encode($s){
    
$texto='';
    
$lon=strlen($s);
    for(
$i=0;$i<$lon;++$i){
        
$num=ord($s[$i]);
        if(
$num<16$texto.='\x0'.dechex($num);
        else 
$texto.='\x'.dechex($num);
    }
    return 
$texto;
}  
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>test</title>
</head>

<body>
<a href="borrar_todos.php" onclick="return confirm('<?php echo js_encode("Tots els registres de fotocòpies seran eliminats de la base de dades. Esta operació només s'ha d'efectuar a l'inici de cada curs escolar, Desitja continuar?");?>');">Esborrar tots els registres</a>
</body>
</html>
  #12 (permalink)  
Antiguo 07/08/2008, 15:42
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: No funciona ventana de diálogo

No entiendo cómo hacer lo que me comentas de las comillas triples.
  #13 (permalink)  
Antiguo 07/08/2008, 15:43
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: No funciona ventana de diálogo

Mejor prueba con lo que te dijo Panino5001. Y es que el problema es que tienes varias comillas simples en tu texto prueba a poner una contrabarra antes de ellas, aunque con lo que él te puso probablemente ya se solucione.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #14 (permalink)  
Antiguo 07/08/2008, 15:47
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: No funciona ventana de diálogo

Creo que se puede indicar que una comilla simple sea literal anteponiendo un "/". Voy a probar.
  #15 (permalink)  
Antiguo 07/08/2008, 15:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: No funciona ventana de diálogo

Ojo, es contrabarra (\) y no barra (/).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #16 (permalink)  
Antiguo 07/08/2008, 15:50
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: No funciona ventana de diálogo

Hombre, esto funciona sin problemas, lo probaste??
  #17 (permalink)  
Antiguo 07/08/2008, 15:59
 
Fecha de Ingreso: octubre-2007
Mensajes: 57
Antigüedad: 16 años, 6 meses
Puntos: 0
Respuesta: No funciona ventana de diálogo

Lo he probado Panino5001. Funciona perfectamente. Eres un artista. Lo que me ocurría es que quería formatear artesanalmente el texto y encontrar el problema. Pero bueno, esto va estupendamente. Gracias...
  #18 (permalink)  
Antiguo 07/08/2008, 16:04
Avatar de Panino5001
Me alejo de Omelas
 
Fecha de Ingreso: mayo-2004
Ubicación: -34.637167,-58.462984
Mensajes: 5.148
Antigüedad: 19 años, 11 meses
Puntos: 834
Respuesta: No funciona ventana de diálogo

Me alegra que te haya servido. Una nota adicional: En javascript también podés reemplazar las comillas por su entidad html equivalente &quot;
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 20:32.