Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/08/2011, 08:10
pserracomas
 
Fecha de Ingreso: agosto-2011
Ubicación: Sa Pobla, Mallorca, Illes Balears
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Problema en página con dos formularios

Hola, estoy haciendo una página de contacto mediante la cuál se puede hacer una subscripción a un boletín de noticias. La página se compone de dos formularios (uno para el contacto y otro para la subscripción), y ambos formularios son validados antes de ser enviados. El problema es que el formulario de subscripción no llama al php al que hace referencia su "action", sino que simplemente actualiza la página, en cambio el formulario de contacto funciona correctamente. Alguien puede ayudarme? Muchas gracias de antemano.

Aquí les dejo el código de los formularios, la validación y el envío del correo:

----------------------
-- Formularios --
----------------------

Código HTML:
<form action="../arxius/php/envia_consulta.php" method="post" name="fcontacte">

<label for="nom">Nom:</label>
<input type="text" id="nom" name="nom"/>
<p id="camp_nom_incorrecte">*Aquest camp és obligatori</p>
						
<label for="mail">e-Mail:</label>
<input type="text" id="mail" name="mail" />
<p id="camp_mail_incorrecte">*Aquest camp és obligatori</p>
						
<label for="telf">Telèfon:</label>
<input type="text" id="telf" name="telf"/>
						
<label for="mis">Missatge:</label>
<textarea id="mis" name="mis"></textarea>
						
<input type="button" id="enviar" name="enviar" value="ENVIAR" onclick="validar_contacte()" />
						
</form> 
Código HTML:
<form accion="../arxius/php/envia_subscripcio.php" method="post" name="fsubscripcio">

<label for="nomsubs">Nom:</label>
<input type="text" id="nomsubs" name="nomsubs"/>
<p id="camp_nomsubs_incorrecte">*Aquest camp és obligatori</p>

<label for="mailsubs">e-Mail:</label>
<input type="text" id="mailsubs" name="mailsubs"/>
<p id="camp_mailsubs_incorrecte">*Aquest camp és obligatori</p>

<input type="button" id="enviarsubs" name="enviarsubs" value="SUBSCRIU-TE" onclick="validar_subscripcio()" />

</form> 

--------------------
-- Validación --
--------------------

Código:
function validar_contacte(){
        
        //Validam el nom
   	if (document.fcontacte.nom.value.length==0){
		document.fcontacte.nom.style.border="solid 1px #ff0033";
		document.getElementById('camp_nom_incorrecte').style.display="block";
		if (document.fcontacte.mail.value.length==0){
			document.fcontacte.mail.style.border="solid 1px #ff0033";
			document.getElementById('camp_mail_incorrecte').style.display="block";
		}else{
			document.fcontacte.mail.style.border="solid 0px";
			document.getElementById('camp_mail_incorrecte').style.display="none";
		}
		return 0;
   	}else{
		document.fcontacte.nom.style.border="solid 0px";
		document.getElementById('camp_nom_incorrecte').style.display="none";
	}
        
   	//Validam el mail
   	if (document.fcontacte.mail.value.length==0){
		document.fcontacte.mail.style.border="solid 1px #ff0033";
		document.getElementById('camp_mail_incorrecte').style.display="block";
		return 0; 
   	}else{
		document.fcontacte.mail.style.border="solid 0px";
		document.getElementById('camp_mail_incorrecte').style.display="none";
	}
        
   	//Enviam el formulari
   	document.fcontacte.submit();
}
Código:
function validar_subscripcio(){

    //Validam el nom
    if (document.fsubscripcio.nomsubs.value.length==0){
        document.fsubscripcio.nomsubs.style.border="solid 1px #ff0033";
        document.getElementById('camp_nomsubs_incorrecte').style.display="block";
        if (document.fsubscripcio.mailsubs.value.length==0){
            document.fsubscripcio.mailsubs.style.border="solid 1px #ff0033";
            document.getElementById('camp_mailsubs_incorrecte').style.display="block";
        }else{
            document.fsubscripcio.mailsubs.style.border="solid 0px";
            document.getElementById('camp_mailsubs_incorrecte').style.display="none";
        }
        return 0;
    }else{
        document.fsubscripcio.nomsubs.style.border="solid 0px";
        document.getElementById('camp_nomsubs_incorrecte').style.display="none";
    }
    
    //Validam el mail

    if (document.fsubscripcio.mailsubs.value.length==0){
        document.fsubscripcio.mailsubs.style.border="solid 1px #ff0033";
        document.getElementById('camp_mailsubs_incorrecte').style.display="block";
        return 0; 
    }else{
        document.fsubscripcio.mailsubs.style.border="solid 0px";
        document.getElementById('camp_mailsubs_incorrecte').style.display="none";
    }
    
    //Enviam el formulari
    document.fsubscripcio.submit();

}

-------------
-- Envío --
-------------
Código PHP:
<?php

//INICIALM LA SESSIÓ PER PODER RECUPERAR-NE LES VARIABLES DE SESSIÓ.
session_start();

//MONTAM EL MISSATGE RECOLLINT LES DADES DEL FORMULARI.
$missatge "Formulari de contacte:" ."\n"."\n";
$missatge .="Nom: " $_POST["nom"]."\n";
$missatge .="e-Mail: " $_POST["mail"]."\n";

if(
trim($_POST['telf']) != ""){
   
$missatge .="Telèfon: " $_POST["telf"]."\n"
}

if(
trim($_POST['mis']) != ""){
   
$missatge .="Missatge: " $_POST["mis"];
}

//ESTABLIM L'ASSUMPTE DEL MISSATGE.
$assumpte "Tretze.es - Formulari de contacte enviat per: ";
$assumpte .= $_POST['nom'];

//ENVIAM EL MISSATGE I COMPROVAM SI S'HA FET CORRECTAMENT.
//ESTABLIM LA VARIABLE DE SESSIÓ CORRESPONENT SEGONS EL RESULTAT.
if(mail("[email protected]""$assumpte"$missatge)){
   
$_SESSION['formulari_contacte'] = "ok";
}else{
   
$_SESSION['formulari_contacte'] = "error";
}

?>
Código PHP:
<?php

//INICIALM LA SESSIÓ PER PODER RECUPERAR-NE LES VARIABLES DE SESSIÓ.
session_start();

//MONTAM EL MISSATGE RECOLLINT LES DADES DEL FORMULARI.
$missatge "Formulari de subscripció:"."\n"."\n";
$missatge .="Nom: " $_POST["nomsubs"]."\n";
$missatge .="e-Mail: " $_POST["mailsubs"]."\n";

//ESTABLIM L'ASSUMPTE DEL MISSATGE.
$assumpte "Tretze.es - Formulari de subscripció enviat per: ";
$assumpte .= $_POST['nomsubs'];

echo 
$missatge;

//ENVIAM EL MISSATGE I COMPROVAM SI S'HA FET CORRECTAMENT.
//ESTABLIM LA VARIABLE DE SESSIÓ CORRESPONENT SEGONS EL RESULTAT.
if(mail("[email protected]"$assumpte$missatge)){
   
$_SESSION['formulari_subscripcio'] = "ok";
}else{
   
$_SESSION['formulari_subscripcio'] = "error";
}
?>
Las variables de sesión son para mostrar un mensaje según el resultado del envío del correo.
Muchas gracias!