Foros del Web » Creando para Internet » HTML »

Problema en página con dos formularios

Estas en el tema de Problema en página con dos formularios en el foro de HTML en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 05/08/2011, 08:10
 
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!
  #2 (permalink)  
Antiguo 05/08/2011, 08:20
 
Fecha de Ingreso: abril-2008
Ubicación: Santa Fe, Argentina
Mensajes: 41
Antigüedad: 16 años
Puntos: 14
Respuesta: Problema en página con dos formularios

Hay un problema en la siguiente linea

Código HTML:
Ver original
  1. <form accion="../arxius/php/envia_subscripcio.php" method="post" name="fsubscripcio">

Le erraste al escribir action, escribiste accion.



Ya que estamos, no uses tildes en HTML o te va a pasar que a veces en lugar de verse caracteres acentuados se van a ver símbolos extraños. Usa lo que se llama 'nombre de entidad'.

http://www.w3schools.com/tags/ref_entities.asp

El formulario de contacto pasaría a ser

Código HTML:
Ver original
  1. <form action="../arxius/php/envia_consulta.php" method="post" name="fcontacte">
  2.  
  3. <label for="nom">Nom:</label>
  4. <input type="text" id="nom" name="nom"/>
  5. <p id="camp_nom_incorrecte">*Aquest camp &eacute;s obligatori</p>
  6.                        
  7. <label for="mail">e-Mail:</label>
  8. <input type="text" id="mail" name="mail" />
  9. <p id="camp_mail_incorrecte">*Aquest camp &eacute;s obligatori</p>
  10.                        
  11. <label for="telf">Tel&egrave;fon:</label>
  12. <input type="text" id="telf" name="telf"/>
  13.                        
  14. <label for="mis">Missatge:</label>
  15. <textarea id="mis" name="mis"></textarea>
  16.                        
  17. <input type="button" id="enviar" name="enviar" value="ENVIAR" onclick="validar_contacte()" />
  18.                        
  19. </form>
  #3 (permalink)  
Antiguo 07/08/2011, 13:41
 
Fecha de Ingreso: agosto-2011
Ubicación: Sa Pobla, Mallorca, Illes Balears
Mensajes: 2
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: Problema en página con dos formularios

Muchísimas gracias, y también por el consejo. Parece mentira como a veces casi nos come el error y no somos capaces de verlo.

Un saludo!

Etiquetas: formulario
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 17:35.