Hola, necesito hacer un cuestionario de 10 preguntas para un dentista en el que sólo se responda a cada pregunta con "si" o "no". Si todas las preguntas se responden con un "no" que aparezca un mensaje que diga: "No debes ir al dentista" y si alguna pregunta se contesta con un "si", entonces que aparezca otro mensaje que diga: "Debes ir al Dentista". He googleado para buscar alguno parecido pero no lo encuentro. De antemano muchas gracias por su ayuda amigos.
En PHP (tienes que añadir los botones restantes): Si se ha contestado a todo presenta el mensaje "No tiene que ir" si todas las respuestas son "no" y "Tiene que ir" si alguna es "sí". Si ha dejado alguna sin contestar sale un mensaje de error en esa pregunta para que la responda. <body> <?PHP // Tomamos los valores introducidos en el formulario $boton1 = $_REQUEST['boton1']; $boton2 = $_REQUEST['boton2']; $enviar = $_REQUEST['enviar']; $error_incompleto = " Debe contestar todas las preguntas <br />"; $error = false; // Comprobamos si hay algún error if (isset($enviar)) //Si se ha pulsado el botón de Enviar { // Respuestas, debe contestarse a todas if ($boton1=="") { $errores["botones1"] = $error_incompleto; $error = true; } else $errores["botones1"] = ""; if ($boton2=="") { $errores["botones2"] = $error_incompleto; $error = true; } else $errores["botones2"] = ""; } // Si los datos son correctos, procesamos formulario if (isset($enviar) && $error==0) { print (" <h1>El Formulario se ha enviado correctamente</h1> <br />"); if (($boton1=="No") && ($boton2=="No")) print (" <p>No tiene que ir al dentista</p> "); else print (" <p>Tiene que ir al dentista</p> "); } else // si faltan respuestas mostramos e formulario de nuevo con los errores { ?> <H2>¿Debo ir al dentista?</H2> <form method="post"> <p>Pregunta 1: <input type="radio" name="boton1" value="Sí" <?php if ((isset($enviar)) && ($boton1 =="Sí")) print ("checked='checked'")?>>Sí <input type="radio" name="boton1" value="No" <?php if ((isset($enviar)) && ($boton1 =="No")) print ("checked='checked'")?>>No <?PHP if ((isset($enviar)) && ($errores["botones1"]!="")) print ($errores['botones1']); ?> </p> <p>Pregunta 2: <input type="radio" name="boton2" value="Sí" <?php if ((isset($enviar)) && ($boton2 =="Sí")) print ("checked='checked'")?>>Sí <input type="radio" name="boton2" value="No" <?php if ((isset($enviar)) && ($boton2 =="No")) print ("checked='checked'")?>>No <?PHP if ((isset($enviar)) && ($errores["botones2"]!="")) print ($errores['botones2']); ?> </p> <p><input type="submit" name="enviar" value="Enviar"></p> </form> <?PHP } ?> </body> <body> <?PHP // Tomamos los valores introducidos en el formulario$boton1 = $_REQUEST['boton1'];$boton2 = $_REQUEST['boton2'];$enviar = $_REQUEST['enviar'];$error_incompleto = " Debe contestar todas las preguntas <br />";$error = false;// Comprobamos si hay algún errorif (isset($enviar)) //Si se ha pulsado el botón de Enviar{// Respuestas, debe contestarse a todasif ($boton1=="") { $errores["botones1"] = $error_incompleto; $error = true; } else $errores["botones1"] = "";if ($boton2==""){ $errores["botones2"] = $error_incompleto; $error = true; } else $errores["botones2"] = ""; } // Si los datos son correctos, procesamos formulario if (isset($enviar) && $error==0) { print (" <h1>El Formulario se ha enviado correctamente</h1> <br />"); if (($boton1=="No") && ($boton2=="No")) print (" <p>No tiene que ir al dentista</p> ");else print (" <p>Tiene que ir al dentista</p> "); } else // si faltan respuestas mostramos e formulario de nuevo con los errores {?> <H2>¿Debo ir al dentista?</H2> <form method="post"> <p>Pregunta 1: <input type="radio" name="boton1" value="Sí"<?php if ((isset($enviar)) && ($boton1 =="Sí")) print ("checked='checked'")?>>Sí <input type="radio" name="boton1" value="No" <?php if ((isset($enviar)) && ($boton1 =="No")) print ("checked='checked'")?>>No <?PHPif ((isset($enviar)) && ($errores["botones1"]!=""))print ($errores['botones1']);?> </p> <p>Pregunta 2: <input type="radio" name="boton2" value="Sí" <?php if ((isset($enviar)) && ($boton2 =="Sí")) print ("checked='checked'")?>>Sí <input type="radio" name="boton2" value="No" <?php if ((isset($enviar)) && ($boton2 =="No")) print ("checked='checked'")?>>No <?PHPif ((isset($enviar)) && ($errores["botones2"]!=""))print ($errores['botones2']);?> </p> <p><input type="submit" name="enviar" value="Enviar"></p> </form> <?PHP }?> </body>
Te agradezco infinitamente, es muy bueno. Sólo que quisiera uno que no esté en PHP, tal vez sólo con javascript y los mensajes aparecerían en el mismo formulario porque no voy a enviar ni guardar datos, sólo quisiera algo lo más sencillo que se pueda. Y de nuevo muchas gracias por estarme ayudando con mi problema.
Te lo paso a javascript, pero no sé si podré antes del domingo o el lunes. El de php no guarda datos y lo presenta todo en el mismo formulario, los errores y los mensajes de ir o no ir al dentista, solo tienes que decorar los resultados. Pero si no tienes php en el servidor sólo te queda la opción de javascript.
No te preocupes, yo espero hasta que puedas pasarme un ejemplo en javascript. Y muchas gracias de nuevo! No sé qué haríamos lo novatos sin ustedes.
Espero que te sirva, lo he puesto sencillo para que puedas copiar, pegar a la vez que entiendes como funciona. Repite para poner las 10 preguntas y listo, luego pones en el texto lo que quieres que aparezca en lugar de lo que yo he puesto. <script type="text/javascript" language="javascript"> function respuesta(){ var dentista = false; if (document.Formulario.Pregunta1[0].checked) { dentista = true; } if (document.Formulario.Pregunta2[0].checked) { dentista = true; } if (dentista == true) { document.write("<br />Tiene que ir al dentista"); } else { document.write("<br />No tiene que ir al dentista"); } } </script> <form name="Formulario" id="Formulario"> <p>Pregunta 1 <input type="radio" name="Pregunta1" value="1" />Sí <input type="radio" name="Pregunta1" value="0" />No </p> <p>Pregunta 2 <input type="radio" name="Pregunta2" value="1" />Sí <input type="radio" name="Pregunta2" value="0" />No </p> <input name="Enviar" type="button" value="enviar" onclick="respuesta()" /> </form>
Muchas Gracias! Es exactamente lo que necesitaba! El que viene en PHP también es Excelente, lo guardaré también para el futuro en servidores con php. Me salvaste la vidaaaaa!