Formulaire conditionnel

Formulaire conditionnel - HTML/CSS - Programmation

Marsh Posté le 25-01-2009 à 19:22:46    

Bonjour à tous.
 
Comme je suis nouveau sur ce forum, je me présente. Je m'appelle Marc et j'ai créé quelques sites web mais uniquement avec des logiciels wysiwyg. Je ne connais donc pas grand chose aux différents languages web (html, css, java, etc.). Je connais juste un peu de C++ grâce à Neverwinter Nights. Et là, je viens de passer deux heures sur internet et sur ce forum mais sans trouver de réponse à ma question. La voici :
 
J'aimerais insérer dans une page html un formulaire avec un seul champ où on peut écrire dedans. Et selon la réponse, on est dirigé vers telle ou telle autre page. Exemple :
 
- Si j'écris "1" dans le champ du formulaire, il me redirige vers la page "1.html".
- Si j'écris autre chose que "1" dans le champ du formulaire, il me redirige vers la page "erreur.html".
 
Voilà, j'espère que vous pourrez m'aider.
TheRack.


Message édité par TheRack le 25-01-2009 à 19:23:48
Reply

Marsh Posté le 25-01-2009 à 19:22:46   

Reply

Marsh Posté le 25-01-2009 à 19:46:29    

Je te conseille de passer par un langage côté serveur, ta redirection fonctionnera quelque soit la configuration du client.
Tu peux faire çà en PHP par exemple :

Code :
  1. <form action="redirection.php" method="get">
  2. <select name="redirect">
  3.    <option value="1">page 1</option>
  4.    <option value="2">page 2</option>
  5.    <option value="3">page 3</option>
  6. </select></form>


Et la page redirection.php sur laquelle les données sélectionnées arrivent (via l'URL)

Code :
  1. <?php
  2. if(!isset($_GET['redirect'])) { //si aucune page n'est mentionnée dans l'url
  3.    header('location: error.html'); //on redirige vers la page d'erreur
  4.    exit(); //et on arrête ce script
  5. }
  6.  
  7. $redirect = $_GET['redirect'];
  8.  
  9. // 2 choix :
  10. // 1er choix : on teste la valeur de $redirect et on redirige de façon "statique" si elle est correcte. Si le numéro ne correspond à aucune adresse valide, on redirige vers la page d'erreur.
  11.  
  12. switch($redirect) {
  13.    case 1 :
  14.        header('location: page1.html');
  15.    break;
  16.  
  17.    case 2 :
  18.        header('location: page2.html');
  19.    break;
  20.  
  21.    case 3 :
  22.        header('location: page3.html');
  23.    break;
  24.  
  25.    default :
  26.        header('location: error.html');
  27.    break;
  28. }
  29.  
  30. // 2nd choix : on construis l'URL "dynamiquement" à partir du numéro envoyé par le client. Si l'adresse est correcte, on redirige, sinon, on renvoie le client sur la page d'erreur.
  31.  
  32. $url = 'page' . $redirect . '.html'; //si $redirect = 1, $url = page1.html
  33. if(!file_exists($url)) { // si la page demandée n'existe pas
  34.    $url = 'error.html'; // alors l'url de redirection est celle de la page d'erreur.
  35. }
  36. header("location: $url" ); // redirection
  37. ?>


 
Si tu n'es pas en moyen d'utiliser un langage côté serveur tu peux toujours utiliser javascript, mais ce sera moins fiable : javascript peut être désactivé facilement.

Reply

Marsh Posté le 25-01-2009 à 22:06:23    

Merci beaucoup de ta réponse si rapide luc@s. Mais en fait, ce que je veux, c'est un champ comme ça :
 
http://www.simtotal.com/starworld/Form.gif
 
On écrit la réponse, et si la réponse est bonne, alors on est redirigé vers la suite. Sinon, page d'erreur. Il ne faut pas que les réponses soient visibles avant.
 
Encore merci  :)  
TheRack.

Reply

Marsh Posté le 26-01-2009 à 18:34:44    

Alors tu fais pareil sauf que tu adaptes la switch de façon à ce que tu testes la réponse.
Je te conseille de te renseigner sur PHP avant de continuer ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed