Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1859 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Resolve]affichage d'erreur dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Resolve]affichage d'erreur dynamique

n°2073419
Eznable
Aïe aïe aïe !
Posté le 03-05-2011 à 09:47:50  profilanswer
 

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 :
  1. <?php
  2. echo ' <p><span id="show_error"></span></p>'."\n";
  3. /* ------------- AFFICHAGE DU FORMULAIRE ------------- */
  4. // NOM / EMAIL / OBJET / MESSAGE / COPIE / VALIDATION
  5. echo '<form id="contact" method="post" action="">'."\n";
  6. echo ' <fieldset><legend>&nbsp;Vos coordonn&eacute;es&nbsp;</legend>'."\n";
  7. echo '        ...'."\n";
  8. echo ' <input type="submit" name="envoi" value="Envoyer le formulaire !" />'."\n";
  9. echo '</form>'."\n";
  10. /* ------------- TRAITEMENT DU FORMULAIRE ------------- */
  11. //On test si le formulaire à été envoyé
  12. if (isset($_POST['envoi']))
  13. {
  14.  //On test si l'un des champs du formulaire est vide; si oui, on arrête l'exécution du script.
  15.  if (empty($_POST['nom']) || empty($_POST['email']) || empty($_POST['objet']) || empty($_POST['message']))
  16.  {
  17.   traitement_error(0);
  18.   exit();
  19.  }
  20.  else
  21.  {
  22.   (...)
  23.  }
  24. }
  25. /* ------------- FONCTIONS UTILES ------------- */
  26. // TRAITEMENT DE L'ADRESSE MAIL
  27. function test_email($email)
  28. {
  29.  if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email))
  30.  {
  31.   traitement_error(1);
  32.   exit();
  33.  }
  34. }
  35. // TRAITEMENT DES ERREURS
  36. function traitement_error($error)
  37. {
  38.  $str = '<ul>'."\n";
  39.  switch ($error)
  40.  {
  41.   // si l'un des champs est vide.
  42.   case 0:
  43.   //echo 'Erreur : Veuillez remplir tous les champs.'."\n";
  44.   $str .= '<li>Erreur : Veuillez remplir tous les champs.</li>'."\n";
  45.   break;
  46.   // si l'adresse mail n'est pas valide.
  47.   case 1:
  48.   $str .= '<li>Erreur : Veuilez indiquer une adresse E-m@il valide.</li>'."\n";
  49.   break;
  50.   default:
  51.   $str .= '<li>Nothing.</li>'."\n";
  52.  }
  53.  $str .='</ul>'."\n";
  54.  //echo $str;
  55.  echo ' <script type="text/javascript">
  56.     window.onload=function()
  57.     {
  58.      document.getElementById("show_error" ).innerHTML= "'.$str.'" ;
  59.     }
  60.    </script>';
  61. }
  62. ?>


 
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
mood
Publicité
Posté le 03-05-2011 à 09:47:50  profilanswer
 

n°2073453
Eznable
Aïe aïe aïe !
Posté le 03-05-2011 à 10:52:33  profilanswer
 

Problème résolu :  
 
Il semble qu'il faille déclarer une variable javascript, à laquelle je donne la valeur de la chaine de caractère str.
Ensuite, je réutilise simplement cette variable.  
 
Dans la fonction traitement_error()
Remplacer  

Code :
  1. echo ' <script type="text/javascript">
  2.      window.onload=function()
  3.      {
  4.       document.getElementById("show_error" ).innerHTML= "'.$str.'" ;
  5.      }
  6.     </script>';


 
Par :  
 

Code :
  1. echo ' <script type="text/javascript">
  2.     var error = '.$str.';
  3.     window.onload=function()
  4.     {
  5.      document.getElementById("show_error" ).innerHTML = error;
  6.     }
  7.    </script>';


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Resolve]affichage d'erreur dynamique

 

Sujets relatifs
erreur exeptionaffichage listview c#
[Pb] Affichage d'un menu avec un effet carrouselErreur d'éxecution '6' - Dépassement de capacité
affichage de balise xml en php[Apache] erreur 404 et wamp
Gestion dynamique d'images sous AndroidProblème d'affichage d'image en hover dans une liste
Probleme StringTokenizer et tableaubug d'affichage image
Plus de sujets relatifs à : [Resolve]affichage d'erreur dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR