PHP / JavaScript

PHP / JavaScript - PHP - Programmation

Marsh Posté le 24-05-2011 à 10:12:07    

Bonjour à tous,
 
je développe une application qui contient un formulaire qui permet d'ajouter des infos, le formulaire envoie les données au fichier cible (addinfo.php). Dans ce dernier, je vérifie que les champs des formulaires sont bien remplis et que ça correspond à ce que j'attends (ex : lien web commence bien par http:// , etc...) Actuellement, mon script addinfo.php affiche le nom de l'erreur et invite l'utilisateur à retourner à la page html pour remplir le formulaire, le problème c'est qu'il doit tout retaper.
C'est pourquoi je préférerais utiliser des alertes JavaScript qui, il me semble n'effacerai pas ce que l'utilisateur a déjà écrit. Mais je ne sais pas trop où intégrer le JavaScript.
Ou si vous avez d'autres solutions : souvent lorsqu'on s'inscrit sur les sites web on ne change pas de page on a juste les champs manquants en rouge mais je ne sais pas comment faire ça.
 
Ci-dessous le code de mon fichier cible addinfos.php :

Code :
  1. <?php
  2. //connexion à la base de données
  3. //paramètres : serveur, utilisateur, mot de passe, base de données
  4. $link2 = DBconnect($serveur,$user,$mdp,$bdd);
  5. $title = addslashes($_POST['title']);
  6. $logiciel = addslashes($_POST['logiciel']);
  7. $version = addslashes($_POST['version']);
  8. $link = addslashes($_POST['link']);
  9. $description = addslashes($_POST['description']);
  10. if(empty($title))
  11. $erreur = "<P align='center'><BR><B>Veuillez saisir le titre de l'info !</B><BR><BR><BR><A HREF='nouvelle_info.html' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>";
  12. if(empty($logiciel))
  13. $erreur = "<P align='center'><BR><B>Veuillez saisir le nom du logiciel / mat&eacute;riel !</B><BR><BR><BR><A HREF='nouvelle_info.html' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>";
  14. if(empty($link))
  15. $erreur = "<P align='center'><BR><B>Veuillez saisir un lien pour l'info !</B><BR><BR><BR><A HREF='nouvelle_info.html' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>";
  16. if(empty($description))
  17. $erreur = "<P align='center'><BR><B>Veuillez saisir la description de l'info !</B><BR><BR><BR><A HREF='nouvelle_info.html' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau la question</B></SPAN></FONT></A></P>";
  18. if (isset($erreur))
  19. {
  20.     echo $erreur;
  21. }
  22. else
  23. if (preg_match("#(((https?|ftp)://(w{3}\.)?)(?<!www)(\w+-?)*\.([a-z]{2,4}))#", $link))
  24. {
  25. mysql_query("INSERT INTO infolog (title,logiciel,version,link,description) VALUES('$title','$logiciel','$version','$link','$description')" );
  26. echo "<p align='center'><font size=4><BR><B>L'info suivante a bien &eacute;t&eacute ajout&eacute;e :</B></FONT></P>";
  27. echo "<P align='center'><I><B>"."<A HREF='$link'><FONT SIZE=4>".$title."</FONT></A></B></I></P><BR><BR>";
  28. echo "<A HREF='nouvelle_info.html' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=4><P align='center'><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Ajouter une nouvelle info</B></SPAN></FONT></A></P>";
  29. }
  30. else
  31. {
  32. echo "<P align='center'><BR><B>Le lien de l'info que vous avez saisi n'est pas correct !</B><BR><BR><BR><A HREF='nouvelle_info.html' style='text-decoration:none; font-variant: small-caps;'><FONT SIZE=2><span style='border:solid 2px; border-color:#E7634D; padding:10px; border-radius:1em;'><B>Saisir de nouveau l'info</B></SPAN></FONT></A></P>";
  33. }
  34. mysql_close();
  35. ?>


 
Merci d'avance pour votre aide !

Reply

Marsh Posté le 24-05-2011 à 10:12:07   

Reply

Marsh Posté le 24-05-2011 à 12:02:12    

1er truc : apprends le html, là, tu développes comme avant 1999 :/
 
Pour le javascript :
solution 1) : sur l'événement on submit de ton form, tu mets une fonction JS qui vérifie le contenu de tes champs et renvoie true si tout est ok, false sinon et affiche des messages d'erreur (alert() ou texte près du champ concerné).
 
solution 2 : sur l'événement onblur de chaque champ, faire une fonction js(ajax ou pas, dépend du champ) qui vérifie le contenu du champ et affiche le msg d'erreur (idem, via alert() ou msg près du champ).
 
Pour info, c'est pas une fatalité de perdre ce que l'utilisateur a saisi su tu fais la vérif du form côté php. Lors du réaffichage du form, tu peux très bien les pré-remplir avec ce qu'il a saisi (stockage des champs dans la session, par ex). ;)


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 24-05-2011 à 15:02:56    

Salut, ce Video Tutoriel. Correspond à ce que tu cherche ;)

Reply

Sujets relatifs:

Leave a Replay

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