Bonjour, je suis entrain de coder en suivant le tutoriel de Grafikart,

Toute fonctionne a merveille mais je voudrais a la place du code suivant

echo "Le mail a bien été envoyé.";
   }
   else{
        echo "Vous n'avez pas rempli tous les champs.";
   }

Ce code renvoie vers une page blanche avec le texte. J'aimerais que ce texte apparaisse dans la page à la place du formulaire?
Si vous voyez ce que je veux faire ?

Merci pour votre aide !!

thibaudsk

10 réponses


en gors, lors de l'envoie du mail, tu veux que ce texte prenne la place du formulaire, c'est bien ca ?
si c'est le cas, va te falloir faire de l'ajax :)

Oui c'est bien sa que je veux. Sa me dérange pas de faire de l'ajax, mais par contre en ajax je m'y connais pas trop bien

Peut tu m'aider ?

je peux te conseiller de regarder le tuto sur la navigation ajax de grafikart (http://www.grafikart.fr/tutoriels/navigation-ajax-33) le seul "probleme" c'est qu'il faut le fichier entier de jquery juste pour utiliser la partie ajax...
apres si tu veux un truc un peu plus léger, ou tu as juste ce dont tu as besoin, je saurais pas t'aider parce que javascript et moi ca fait environ 15 milles... (bizarrememnt c'est un des rares langages que je n'arrive pas a comprendre, le C, C++, php, debut de java et meme assembleur ca va mais le JS non)

Je vois "Ce code renvoie vers une page blanche avec le texte"
Tu veux faire faire une redirection si ton Email à bien été envoyé ?

oui mais pas sur une page blanche, mais plus tot dans la div de contact, pour que les gens puisse revenir avec le menu ou ils veulents

As tu un exemple (j'ai peur de ne pas bien saisir ce que tu veux faire).

Bon tu es sur le site, tu complète le formulaire, pour le moment une page blanche apparait lorsque tu remplis pas les champs ou que le message a bien été envoyé.

Moi je voudrais qu'une fois qu'on clique sur envoyer, le message apparaisse dans le site et non dans une page blanche

il veut remplacer <form> par <div>Message bien envoyé</div> ou <div>message mal envoyé</div> selon le cas (grosso modo) sans avoir à rediriger vers une autre page, juste ne modifiant le texte. recharger que la partie qui contient le formulaire

Ben en js/php tu peux décider ou tu veux allez (location)

//un exemple grossier en php
if(mail($Email, $objet, $message, $From)){
    //redirection 
    header('Location: http://www.site.com/confirm.php');   
}
//un exemple js
if(mail($Email, $objet, $message, $From)){ 
?>
    //raccorder à une div comme tu voulais (j'ai taper un peux de jquery)
    <a href="#Madiv"></a> 
    <script type="text/javascript">
        //ciblé une div
        $(document).ready(function(){
            $("a").click();
        });
        //redirection js => dans le cas d'une utilisation ajax par exemple
    location.href = 'http://www.site.com/confirm.php';     
    </script>
<?php
}

Je n'ai pas regardé le tuto, ce que je peut te conseiller c'est de stocker ton message dans une variable.
En espérant que ton envoie se fait sur la même page en récursif.

Tu met ton message d'erreur dans une variable du genre:

<?php $erreur = 'Les champs sont incomplet'; ?>

Et dans le div contact tu met.

<?php 
    if(isset($erreur))
    {
        echo $erreur;
    }
    else
    {
        //Affichage de ton form;
    }