Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   HTML, Javascript y otros (https://www.clubdelphi.com/foros/forumdisplay.php?f=38)
-   -   Acivar/Desactivar vinculo HTML (https://www.clubdelphi.com/foros/showthread.php?t=86414)

jhonalone 05-08-2014 17:51:24

Acivar/Desactivar vinculo HTML
 
Hola, amigos.
Tengo una página web hecha hace unos años, que ha estado funcionando correctamente hasta no sé cuándo. Ahora me da un problema, que os explico a continuación, a ver si alguien puede echarme una mano. Agradezco de antemano vuestro interés.

El funcionamiento básico es el siguiente:
La página tiene un campo oculto con un valor determinado, que cambia (mediante una función Javascript) al enviar el formulario . Al enviar el formulario, se envía un correo de confirmación mediante un fichero .php, sólo si el valor del campo oculto ha cambiado. Como hemos cambiado el valor del campo oculto, debería activarse el botón de descarga, y cambiar el link correspondiente a este botón.

Hasta una fecha determinada ha funcionado correctamente.
Ahora envía el correo (lo que quiere decir que el valor del campo oculto ha cambiado correctamente)
pero no se activa el botón de descarga. ¿¿...??

Pongo fragmentos de código fuente implicados en la cuestión.

Valor inicial del campo oculto.
<FORM NAME="myformula" METHOD="GET" ENCTYPE="TEXT/PLAIN"
ONSUBMIT="return(EnviarONO(this))" ACTION="SendPrueba.php">
<INPUT TYPE="hidden" NAME="Control1" VALUE="No Enviado Correo">

Cambio de valor al enviar formulario en la función EnviarONO()
document.myformula.Control1.value = "Enviado Correo";

Envío del correo mediante php. (SendPrueba.php)
Código PHP:

 $control $_GET["Control1"]; //(Recuperamos el valor del formulario)

if ($control == "Enviado Correo")  //Si el valor es correcto
     
{
    
mail($para$asunto$mensaje$header);   
    }; 

Activación del botón de descarga

<A NAME="EnviDat"
ONMOUSEOVER="if (CorreoEnviado(myformula.Control1))
{if(MSFPhover) document['EnvCopia'].src=EnvCopiah.src; this.href='InRorschach.exe';}"

ONMOUSEOUT="if (CorreoEnviado(myformula.Control1))
{if(MSFPhover) document['EnvCopia'].src=EnvCopian.src;} else {if(MSFPhover) document['EnvCopia'].src=EnvCopiap.src;}">

<IMG SRC="_derived/copia.htm_cmp_arcs110_vbtn_p.gif" WIDTH="166" HEIGHT="60"
BORDER="0" ALT="Aquí podrá descargar InRorschach.exe cuando envíe sus datos."
NAME="EnvCopia" ONAFTERUPDATE="_derived/copia.htm_cmp_arcs110_vbtn.gif">
</A>

Copia de la funcion CorreoEnviado()
function CorreoEnviado(valor)
{if (valor.value == "Enviado Correo")
return true;
else return false;
}

Bueno, no sé explicarme mejor, espero que se entienda algo.
Siento no saber como encerrar en etiquetas el código HTML y el código Javascript

Gracias por vuestro esfuerzo para leer mi post y muchas más gracias, si alguien encuentra una solución.

jhonalone 05-08-2014 21:27:27

Ah! Se me olvidaron un par de cosillas.

He probado con varios navegadores: Chrome, Explorer(v11 y v8 -antes funcionaba-), Mozzilla, Opera.
El resultado ha sido el siguiente:

Con Chrome funciona perfectamente.

Con Opera se activa el botón de descarga con el link correcto, pero los colores alternativos de los botones no se activan, ni antes ni después de enviar el formulario.

Con Explorer y con Mozilla, funcionan los colores alternativos de los botones, pero no se activa el botón de descarga.

También se me olvidó poneros una copia de la funcion MSFPhover

LANGUAGE="JavaScript"><!--
MSFPhover =
(((navigator.appName == "Netscape") &&
(parseInt(navigator.appVersion) >= 3 )) ||
((navigator.appName == "Microsoft Internet Explorer") &&
(parseInt(navigator.appVersion) >= 4 )));
// --></SCRIPT>

Y por último, me olvidé dejaros el link de la página para quien la quiera probar
http://www.jmms.es

jhonalone 17-08-2014 19:16:20

ASUNTO RESUELTO.
Por si puede interesar a alguien, he resuelto el problema cambiando algo el código HTML y utilizando un par de funciones en JavaScript. El código ha quedado así.

Código:

<SCRIPT LANGUAGE="JavaScript"><!--

function activarOver(elemento)
{
        if (CorreoEnviado(document.myformula.ControlOculto.value))
        {        if(MSFPhover)
                {
                document['EnvCopia'].src=EnvCopiah.src;
                elemento.href ="QuiniLoto.zip";
                }
        }
}

function activarOut()
{
        if (CorreoEnviado(document.myformula.ControlOculto.value))
        {        if(MSFPhover)
                {
                document['EnvCopia'].src=EnvCopian.src;
                }
        }
        else
        {        if(MSFPhover)
                {
                document['EnvCopia'].src=EnvCopiap.src;
                }       
        }
}
// --></SCRIPT>

<A 
 ONMOUSEOVER="activarOver(this)"
 ONMOUSEOUT="activarOut()"
 name="EnvCop">



La franja horaria es GMT +2. Ahora son las 23:00:57.

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