Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-05-2007
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
vinculo que no deberia hacer nada......

hola amigos, tengo el siguiente problema:

Estoy generando una tabla con diferentes imagenes con vinculos (eliminar, modificar, etc) que gestionan los diferentes registros de la tabla....El asunto es que deseo que cuando seleccionen en el boton (imagen) eliminar muestre una ventana de confirmacion, he buscado y encontre que debe ser mas o menos asi:

Código PHP:
..."<a onClick=javascript:confirmar() href=../pages/Eliminarusuario.php?idusuario=".$cons[user]."><img src=../Images/ElimUsuario.png border=0 alt='Elimina el usuario y todos los registros asociados a el'></a>"... 
La funcion confirmar es la siguiente:

Código:
<script language="JavaScript" type="text/javascript"> 
        function confirmar() 
        { 
            var statusConfirm = confirm("¿Realmente desea eliminar este usuario?"); 
            if (statusConfirm == true) 
             return true;
             else
              return false;
        } 
    </script>
Y el asunto es que muestra muy bien el dialogo de ocnfirmacion, pero tanto si lo doy en OK como en Cancelar me elimina el registro igualmente. Quisiera saber donde esta el detalle si lo hay para resolver esto.......

Saludos
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #2  
Antiguo 19-05-2007
Avatar de lucasarts_18
lucasarts_18 lucasarts_18 is offline
Miembro
 
Registrado: mar 2005
Ubicación: Villa Alemana,Chile
Posts: 1.087
Poder: 21
lucasarts_18 Va por buen camino
Cita:
Empezado por oracle
Y el asunto es que muestra muy bien el dialogo de ocnfirmacion, pero tanto si lo doy en OK como en Cancelar me elimina el registro igualmente. Quisiera saber donde esta el detalle si lo hay para resolver esto.......
Pueden ser varias opciones, te day algunas pistas..
  • El form de tu formulario está apuntando al archivo php que hace la eliminación.
  • En vez de retornar true o false creo que en la función deberías hacer el action del formulario.
  • En el javascript de la imagen al parecer le falta algo para determinar una u otra acción.
A mí sucedió hace algunos días lo mismo que tu, no recuerdo como lo solucioné, y por ahora no tengo las fuentes como para poder ayudarte.

Pero lo que estoy seguro es que no uso href para direccionarlo a otra página, sino que lo direcciono en la misma función Javascript a traves de:

Código PHP:
<script language="JavaScript" type="text/javascript"
function 
confirmar() 

var 
statusConfirm confirm("¿Realmente desea eliminar este usuario?"); 
if (
statusConfirm == true
Form1.action 'elimina.php';
else
return 
false;

</script> 
Hasta Luego .-
__________________
No todo es como parece ser...
Responder Con Cita
  #3  
Antiguo 19-05-2007
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
No tengo formulario en la pagina

No tengo dicho formulario en la pagina, es simplemente una tabla cuyos valores voy imprimiendo con codigo php.

La tarea del action del form en este caso lo esta asumiendo el href del vinculo. Claro. aun asi puede ser lo que me estas diciendo, pero en este caso como hago para referirme al "vinculo" dentro de la funcion javascript??

He tratado tambien de pasarle el parametro $cons[user] que originalmente utilizo en el href del vinculo a la funcion javascript y desde alli mismo redireccionar, pero tampoco nada, claro, acepto sugerencias...

Saludos
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #4  
Antiguo 19-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Tal vez podamos usar el "return", pues, aunque habrá que probarlo en diferentes navegadores, creo que algo así es lo que uno podría esperar del navegador:

Código:
<a onclick="return confirm('Seguro?');" 
 href="http://www.clubdelphi.com">ClubDelphi.com</a>
Es decir, "Confirma que el usuario quiere abrir el enlace". Si se confirma, "return value True", y el flujo "sigue" y el enlace es abierto. Si no se confirma "return vale False"... y ahí acaba la historia.
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 19-05-2007 a las 20:53:26.
Responder Con Cita
  #5  
Antiguo 20-05-2007
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Hola dec, también había probado con eso. Fijate que es casi el mismo principio de la otra via pero mucho mas corto, pero hace exactamente lo mismo. Manda el navegador para la pagina del href del vinculo. Creo que voy a meter la tabla dentro de un form y probar la via de nuestro amigo lucasarts_18, ya les dire entonces..............
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #6  
Antiguo 20-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Es curioso... yo acabo de probarlo en Internet Explorer 7, Opera 9 y Firefox 2 y en estos tres navegadores funciona como se espera. ¿Probaste sólo el código que copié? A ver si lo haz mezclado con "algo" y por eso no va bien...

Código:
<a onclick="return confirm('Seguro?');" 
 href="http://www.clubdelphi.com">ClubDelphi.com</a>
Copia ese código en un nuevo archivo y guarda este como documento HTML (.html)... debería funcionar... la lógica es la que antes he dicho: El "OnClick" del enlace se ejecuta antes que el propio enlace... es decir, antes de cargar el "href" se ejecuta el "OnClick".

Pues bien. Si este evento retorna "False", enlaces no se carga el enlace. Si retorna "True" se carga el enlace. Si quieres utilizar una función (porque tengas que comprobar alguna que otra cosa) puedes hacerlo también, pero, no habrás de olvidar el "return" en el evento "Onclick", de modo que el resultado de la función sea "True" o "False" y el efecto sea el mencionado arriba.

Nota: En Internet Explorer 7, curiosamente, te aparece una advertencia de seguridad... con sólo el código anterior... que ya es ser suspicaz, digo yo, y, si no permites la ejecución del contenido bloqueado... se cargará el enlace de marras si el usario lo pulsa. Si desbloqueas el contenido entonces todo va como se espera.

Ya digo, lo he probado en Internet Explorer 7, Opera 9 y Firefox 2.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #7  
Antiguo 20-05-2007
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Hola, si, o he probado cuando lo posteaste y efectivamente me funciono:

Código PHP:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><!-- InstanceBegin template="/Templates/ultimo.dwt" codeOutsideHTMLIsLocked="false" -->
<
head>

<
title>Gestion de Datos del Usuario</title>
</
body>
 <
a onclick="return confirm('Seguro?');" 
href="http://www.clubdelphi.com">ClubDelphi.com</a>

</
body>

</
html

Lo he vuelto a probar en mi codigo y nada. Pero en fin no se si se han fijado en que el vinculo lo imprimo con un "echo" de php, y me parece que el problema es que cuando pongo <a onclick=return confirm('Seguro?').... el no asume el confirm().... dentro del onClick. probe anidarlo dentro de parentesis todo y tampoco. Ahora, le dejo solo el onclick=confirm('Seguro?') sin el return y muestra la ventana de confirmacion pero igualmente va para la siguiente pagina con cualquiera de las dos opciones. Fijate que en cualquier caso la diferencia con el tuyo son las comillas del onClick, ya que como te he dicho lo estoy imprimiendo con "echo".........


Saludos
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #8  
Antiguo 20-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Bueno. Pero ahora tenemos un problema con las comillas o lo que sea: pero el caso es que funcionar ha de funcionar, es cuestión de encontrarle las vueltas al asunto, de modo que el código se imprima en condiciones:

Código PHP:

echo'
  <a href="http://www.clubdelphi.com/" 
   onclick="return confirm(\'¿Seguro que quieres continuar?\')">ClubDelphi</a>
'

Fíjate que "escapo" las comillas que contienen la cadena del mensaje para "confirm". Esto lo hago para que dichas comillas no interfieran con las del propio "echo". Empero, las comillas dobles, las del "href" y las del "onclick" no interfieren en absoluto y pueden dejarse tal cual (y aun deben, puesto que en estos casos es menester, para cumplir con el estándar XHTML, utilizar comillas dobles y no simples).
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 20-05-2007 a las 00:58:48.
Responder Con Cita
  #9  
Antiguo 20-05-2007
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Correcto!!!

Exacto Dec, era eso mismo. No sabia que se podían anidar de esa forma las comillas, siempre pense que la doble tenía cierta prioridad sobre la comilla simple. Muy ingenioso lo de los escapes.....y un agradecido saludo.....
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #10  
Antiguo 20-05-2007
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por oracle
(...) siempre pense que la doble tenía cierta prioridad sobre la comilla simple.
Bueno. En realidad ocurre que el contenido de las comillas dobles es "procesado" por PHP, y las variables que se encuentren serán "expandidas". El contenido entre comillas simples no se procesa, sino que es "retornado" tal cual.

Código PHP:
$variable 'sus usuarios';

echo 
"El valor de $$variable está en $variable"
Imprime la cadena: El valor de $clubdelphi está en sus usuarios

Código PHP:
$variable 'sus usuarios';

echo 
'El valor de $$variable está en $variable'
Imprime la cadena: El valor de $$variable está en $variable

Pero, sí, puedes anidar comillas simples y dobles sin problemas... y a veces tienes que hacerlo porque no quede más remedio, o porque el resultado esperado lo haga necesario.

PD. Revisemos en todo caso el manual de PHP sobre "echo".
__________________
David Esperalta
www.decsoftutils.com

Última edición por dec fecha: 20-05-2007 a las 01:52:48.
Responder Con Cita
  #11  
Antiguo 20-05-2007
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Thumbs up

Muy buenos los ejemplos del manual..........
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
de un form a otro sin hacer nada ? mainau Varios 5 26-07-2004 19:32:35
No se nada de nada... Me ayudan???? Vampire Conexión con bases de datos 12 02-06-2004 18:14:30
Que debería Utilizar??? Rabata Conexión con bases de datos 2 28-09-2003 17:00:54


La franja horaria es GMT +2. Ahora son las 18:12:19.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi