Bonjour à toutes et à tous !
Tout d'abord désolé pour le titre, je ne savais pas trop comment intituler ma requête. Voilà, je actuellement en train de réaliser un formulaire pour contacter un administrateur. J'en suis au début. Aussi, j'ai réalisé une fonction qui gère les erreurs : champ non-rempli / forme d'émail non valide etc / captcha fausse (pas encore en place...)
Le tout doit tenir sur une seule page php ! Ceci est la condition la plus importante.
Bref je vous montre le code déjà réalisé :
Code :
- <?php
- echo ' <p><span id="show_error"></span></p>'."\n";
- /* ------------- AFFICHAGE DU FORMULAIRE ------------- */
- // NOM / EMAIL / OBJET / MESSAGE / COPIE / VALIDATION
- echo '<form id="contact" method="post" action="">'."\n";
- echo ' <fieldset><legend> Vos coordonnées </legend>'."\n";
- echo ' ...'."\n";
- echo ' <input type="submit" name="envoi" value="Envoyer le formulaire !" />'."\n";
- echo '</form>'."\n";
- /* ------------- TRAITEMENT DU FORMULAIRE ------------- */
- //On test si le formulaire à été envoyé
- if (isset($_POST['envoi']))
- {
- //On test si l'un des champs du formulaire est vide; si oui, on arrête l'exécution du script.
- if (empty($_POST['nom']) || empty($_POST['email']) || empty($_POST['objet']) || empty($_POST['message']))
- {
- traitement_error(0);
- exit();
- }
- else
- {
- (...)
- }
- }
- /* ------------- FONCTIONS UTILES ------------- */
- // TRAITEMENT DE L'ADRESSE MAIL
- function test_email($email)
- {
- if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email))
- {
- traitement_error(1);
- exit();
- }
- }
- // TRAITEMENT DES ERREURS
- function traitement_error($error)
- {
- $str = '<ul>'."\n";
- switch ($error)
- {
- // si l'un des champs est vide.
- case 0:
- //echo 'Erreur : Veuillez remplir tous les champs.'."\n";
- $str .= '<li>Erreur : Veuillez remplir tous les champs.</li>'."\n";
- break;
- // si l'adresse mail n'est pas valide.
- case 1:
- $str .= '<li>Erreur : Veuilez indiquer une adresse E-m@il valide.</li>'."\n";
- break;
- default:
- $str .= '<li>Nothing.</li>'."\n";
- }
- $str .='</ul>'."\n";
- //echo $str;
- echo ' <script type="text/javascript">
- window.onload=function()
- {
- document.getElementById("show_error" ).innerHTML= "'.$str.'" ;
- }
- </script>';
- }
- ?>
|
Le tout est que ma fonction traitement_error() puisse retourner le message d'erreur dans le <span> d'id show_error en haut, avant le formulaire.
Ce code fonctionne bien dans l'immédiat, en même temps, rien d'exceptionnel, et ma variable $str est bien celle qu'elle doit être, l'affichage du code source le prouve... Je me demande juste comment faire donc pour positionner mon message d'erreur ?
Au passage vaut-il mieux utiliser <span> ou une <div> ?
Merci en tout cas du temps que vous prendrez à lire mon message et à celui que vous accorderez à ma réponse.
Message édité par Eznable le 03-05-2011 à 10:55:29