22/06/2004, 01:24
|
| 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
|