Bonjour,

Voila je rencontre un petit problème.

Tous les liens de navigation de mon site renvoient vers des bouts de codes javascript. Ils se déclenchent tous au clic et l'affichage se fait vers une unique zone d'affichage qui diffère selon que j'appuie sur tel ou tel menu.

Mais dans mon menu Contact, j'ai mis un formulaire de contact dans lequel j'aimerais afficher des valeurs PHP si jamais les champs ont déjà été remplis auparavant mais que mes tests de validité ne sont pas satisfaits. Je veux donc éviter à la personne qui m'a écrit un message, de le réécrire si l'envoi ne s'effectue pas.

Pour cela, je mets du code PHP à l'intérieur d'un sélecteur de type $("#affichage").html ou même d'un $("#affichage").append(). Mais celà ne marche pas. Je pense comprendre pourquoi mais comment puis-je faire pour contourner ce problème.

VOICI MON CODE :

$("#contact").click(function(){
         $("#contact").removeClass("active");
         $("#contact").addClass("menu_selected");
         $("#hobbies").removeClass("menu_selected");
         $("#hobbies").addClass("active");
         $("#presentation").removeClass("menu_selected");
         $("#presentation").addClass("active");
         $("#formations").removeClass("menu_selected");
         $("#formations").addClass("active");
         $("#pro").removeClass("menu_selected");
         $("#pro").addClass("active");
         $("#competences").removeClass("menu_selected");
         $("#competences").addClass("active");
         $("#affichage").html("<h1>Contact</h1><div class='col-xs-6 col-xs-offset-1 col-sm-6 col-sm-offset-1 col-md-6 col-md-offset-1 col-lg-6 col-lg-offset-1'><div><form action='' method='post'><label for='nom'>Nom : <?php if (isset($err1)) {echo $err1;} ?></label><input type='text' name='nom' id='nom' value='<?php if (isset($nom)) {echo $nom;} ?>' placeholder='Votre nom...'/><label for='email'>Email : <?php if (isset($err2)) {echo $err2;} ?></label><input type='text' name='email' id='email' value='<?php if (isset($email)) {echo $email;} ?>' placeholder='Votre email...'/><label for='message'>Message : <?php if (isset($err3)) {echo $err3;} ?></label><textarea name='message' id='message' rows='15' cols='30' placeholder='Votre message...'><?php if (isset($message)) {echo $message;} ?></textarea><input type='submit' value='Envoyer'></div></form></div>");
      }); 

Évidemment mon code ne marche pas. Le formulaire écrit juste les bouts de code PHP à l'intérieur des champs input, comme s'ils étaient de simples bouts de caractères.

Quelqu'un aurait-il l'amabilité de m'aider?

Merci d'avance!

4 réponses


pourquoi ne pas passer par de l´ajax pour ton formulaire? afin de ne pas avoir ce genre de soucie c´est le plus simple.

Merci de ta réponse! Pourquoi avec de l'AJAX s'il te plait? quelle est la logique derriere? j'avoue ne pas m'y connaitre beaucoup en AJAX. Penses-tu que c'est le seul moyen?

en gros tu valide les champs coté javascript, avec une vérification coté client pour les données requise, enssuite tu soumet le formulaire via un appel ajax , une foi le retour de php fait correctement, il te suffit de rediriger ton url avec un window.location.href = 'url/a/rediriger' et tu affiche le message quand tu veut du coup. apres le redirect, avant le redirect, bref tu gère le front comme tu le sent.

Merci à toi de ta réponse. Je vais essayer de me dépatouiller avec Ajax alors. :-)