Tema: test
Ver Mensaje Individual
  #44 (permalink)  
Antiguo 22/06/2004, 01:24
Avatar de KarlanKas
KarlanKas
Moderador extraterrestre
 
Fecha de Ingreso: diciembre-2001
Ubicación: Madrid
Mensajes: 6.987
Antigüedad: 22 años, 11 meses
Puntos: 61
Vamos a ver!

La página del formulario quedaría así:
Código HTML:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
	<title>Untitled</title>
<script>
//Pon aquí las respuestas posibles:
letras=['a','b','c','d','e']

responderTodas=false; //ponlo en true para obligar a que responda todas.

//Pon aquí los mensajes personalizados para cada respuesta o para el empate.
mensajeA="Ha respondido mayoritariamente Aes";
mensajeB="Ha respondido mayoritariamente Bes";
mensajeC="Ha respondido mayoritariamente Ces";
mensajeD="Ha respondido mayoritariamente Des";
mensajeE="Ha respondido mayoritariamente Ees";
mensajeEmpate="No se decide usted, eh?";

//Configuración del correo

comienzo="Hola! Se ha recibido una respuesta del formulario. "; //Comienzo del correo
despedida="Reciba un cordial saludo de KarlanKas!"; //Final del correo

//------------------------------------------------

function comprobar(){
	//Inicialización de variables
	var a=0;
	var b=0;
	var c=0;
	var d=0;
	var e=0;
	var total=0;
	var empate=false;
	var nombre="";
	var preguntas=0;
	var	formulario=document.forms[0];
	var restoEmail=""
	
//Inicio de la comprobación
	
	for(q=0;q<formulario.length;q++){
			
			//Si el elemento es un radio y tiene nuevo nombre (es una nueva ristra de preguntas)
			if(formulario.elements[q].type=="radio" && formulario.elements[q].name!=nombre){
			//Contar una pregunta más
			preguntas+=1;
			//Cambiar el valor de nombre anterior por el actual
			 nombre=formulario.elements[q].name;
			 }
			 
			 //Si está seleccionada esta respuesta
			  if(formulario.elements[q].checked){
			  	restoEmail+="La respuesta a la pregunta "+preguntas+" ha sido la "+formulario.elements[q].value+".\n";
				//Sumar una a la letra en cuestión
				eval(formulario.elements[q].value+"+=1");
				//Sumar una al total de respuestas
				total+=1;
				}
			
}
	//Si no se han contestado todas
	if(responderTodas && total!=preguntas){alert("Debe responder a todas las preguntas antes de continuar");return false}
	
	mayor=0
	for(ax=1;ax<letras.length;ax++){
		if(eval(letras[ax])>eval(letras[mayor])){mayor=ax;empate=false;}
			else{
				if(letras[ax]==eval(letras[mayor])){empate=true}}
	}
	
	if(!empate){
	if(eval(letras[mayor])==0){alert("Haz el favor de responder alguna pregunta");return false;}
	else{
		mensaje=eval("mensaje"+letras[mayor].toUpperCase())
		}
	}
	else{

		mensaje=mensajeEmpate;
	}
	
	

		formulario.mensaje.value=comienzo+"\n\n"+restoEmail+"\n\nDe lo que se desprende que...\n\n"+mensaje+"\n\n"+despedida;
		formulario.haymensaje.value="si";

	}
	</script>
</head>

<body>
<form action="mandador.php" method="post" onsubmit="return comprobar()" >
<input type="hidden" name="haymensaje">
<input type="hidden" name="mensaje">
1. Pregunta<br>

<input type="radio" name="pregunta1" value="a">Respuesta A<br>
<input type="radio" name="pregunta1" value="b">Respuesta B<br>
<input type="radio" name="pregunta1" value="c">Respuesta C<br>
<input type="radio" name="pregunta1" value="d">Respuesta D<br>
<input type="radio" name="pregunta1" value="e">Respuesta E<br><br>
2. Pregunta<br>

<input type="radio" name="pregunta2" value="a">Respuesta A<br>
<input type="radio" name="pregunta2" value="b">Respuesta B<br>
<input type="radio" name="pregunta2" value="c">Respuesta C<br>
<input type="radio" name="pregunta2" value="d">Respuesta D<br>
<input type="radio" name="pregunta2" value="e">Respuesta E<br><br>

3. Pregunta<br>

<input type="radio" name="pregunta3" value="a">Respuesta A<br>
<input type="radio" name="pregunta3" value="b">Respuesta B<br>
<input type="radio" name="pregunta3" value="c">Respuesta C<br>
<input type="radio" name="pregunta2" value="d">Respuesta D<br>
<input type="radio" name="pregunta3" value="e">Respuesta E<br><br>

4. Pregunta<br>

<input type="radio" name="pregunta4" value="a">Respuesta A<br>
<input type="radio" name="pregunta4" value="b">Respuesta B<br>
<input type="radio" name="pregunta4" value="c">Respuesta C<br>
<input type="radio" name="pregunta4" value="d">Respuesta D<br><br>
5. Pregunta<br>

<input type="radio" name="pregunta5" value="a">Respuesta A<br>
<input type="radio" name="pregunta5" value="b">Respuesta B<br>
<input type="radio" name="pregunta5" value="c">Respuesta C<br>
<input type="radio" name="pregunta5" value="d">Respuesta D<br>
<input type="radio" name="pregunta5" value="e">Respuesta E<br><br>
6. Pregunta<br>

<input type="radio" name="pregunta6" value="a">Respuesta A<br>
<input type="radio" name="pregunta6" value="b">Respuesta B<br>
<input type="radio" name="pregunta6" value="c">Respuesta C<br>
<input type="radio" name="pregunta6" value="d">Respuesta D<br>
<input type="radio" name="pregunta6" value="e">Respuesta E<br><br>

7. Pregunta<br>

<input type="radio" name="pregunta7" value="a">Respuesta A<br>
<input type="radio" name="pregunta7" value="b">Respuesta B<br>
<input type="radio" name="pregunta7" value="c">Respuesta C<br>
<input type="radio" name="pregunta7" value="d">Respuesta D<br>
<input type="radio" name="pregunta7" value="e">Respuesta E<br><br>



<input type="submit">

</form>


</body>
</html> 
Y la página de destino (la que está en el action) debería ser algo así:
(recuerda que debe tener extensión php (mandador.php)
Código PHP:
<?
$eMail
="[email protected]"//Destinatario
$titulo="respuesta del formulario"//Asunto del correo

if($mensaje){
mail($eMail$titulo,$mensaje);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>
<head>
<style>
.mensaje{padding:10px 10px 10px 10px;
font:normal 10px/20px verdana;
border:solid 1px black;
width:90%;
}
</style>
    <title>Untitled</title>
</head>

<body>
<p class="mensaje">
<? 
if($haymensaje=="si"){
echo 
nl2br($mensaje); 
}
else{
echo 
"<script>history.back()</script>";
}
?>
</p>
</script>


</body>
</html>
Espero que te sirva!!
__________________
Cómo escribir

No hay pregunta tonta, sino tonto que quiere seguir en la ignorancia.

Última edición por KarlanKas; 22/06/2004 a las 01:56 Razón: He cambiado una cosa en mandador.php