IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

AJAX Discussion :

[AJAX] formulaire


Sujet :

AJAX

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Par défaut [AJAX] formulaire
    Bonjour,
    J'ai un problème avec un formulaire html tout fonctionne les emails partent et sont reçus mais au lieu du message attendu après l'envoi du formulaire j'ai ça :

    {"messageMessage":"","nameMessage":"","emailMessage":"","subjectMessage":""} et je n'arrive pas à comprendre pourquoi ... Si quelqu'un à une piste je suis preneur et le remercie d'avance !

    Voici les différents codes :

    le formulaire html :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     <div class="contact-us container">
                <div class="row">
                    <div class="contact-form span7">
     
                        <form role="form" method="post" action="assets/send.php"> <!-- MLG ajouté role="form" --> 
                           <p>blablablablablabla...</p>
    						<p>blablablablablabla ?</p>
    						<p>blablablablablabla ?</p>
    						<p>blablablablablabla.</p>
    						<p>blablablablablabla!</p>
                           <label for="message" class="messageLabel">Posez votre question</label>
                              <textarea id="message" name="message" placeholder="Posez votre question blablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablablabla.">
                            </textarea> 
                            <label for="name" class="nameLabel">Prénom</label>
                              <input id="name" type="text" name="name" placeholder="Entrez votre prénom">
                            <label for="email" class="emailLabel">Email</label>
                              <input id="email" type="text" name="email" placeholder="Entrez votre email">
                            <label for="subject">Numéro de portable</label>
                              <input id="subject" type="text" name="subject" placeholder="Entrez votre numéro de portable">
     
                            <button type="submit">Envoyer</button>
                        </form>
                    </div>
    ensuite les appels de scripts extérieurs :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
          <!-- Javascript --> 
            <script src="assets/js/jquery-1.8.2.min.js"></script> 
            <script src="assets/bootstrap/js/bootstrap.min.js"></script>
            <script src="assets/js/jquery.flexslider.js"></script>
            <script src="assets/js/jquery.tweet.js"></script>
            <script src="assets/js/jflickrfeed.js"></script>
            <script src="../maps.google.com/maps/api/js/index-sensor=true.html"></script>
            <script src="assets/js/jquery.ui.map.min.js"></script>
            <script src="assets/js/jquery.quicksand.js"></script>
            <script src="assets/prettyPhoto/js/jquery.prettyPhoto.js"></script>
            <script src="assets/js/scripts-send.js"></script>

    le code de send.php :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <?php
     
    // Email address verification
    function isEmail($email) {
        return(preg_match("/^[-_.[:alnum:]]+@((([[:alnum:]]|[[:alnum:]][[:alnum:]-]*[[:alnum:]])\.)+(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com|coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw)$|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i", $email));
    }
     
    if($_POST) {
     
        // Enter the email where you want to receive the message // 
        $emailTo = 'machin@gmail.com';
     
        $message = addslashes(trim($_POST['message']));
        $clientName = addslashes(trim($_POST['name'])); 
        $clientEmail = addslashes(trim($_POST['email']));
        $subject = addslashes(trim($_POST['subject']));
     
        $array = array();
        $array['messageMessage'] = ''; 
        $array['nameMessage'] = '';
        $array['emailMessage'] = '';
        $array['subjectMessage'] = ''; 
     
        if($message == '') {
            $array['messageMessage'] = 'Please enter your message.'; 
        }
        if($clientName == '') {
            $array['nameMessage'] = 'Please enter your name.';
        }
        if(!isEmail($clientEmail)) {
            $array['emailMessage'] = 'Please insert a valid email address.';
        }
        if($subject == '') {
            $array['subjectMessage'] = 'Please enter your phone number.';
        }
    //    if($message != '') && ($nom != '') && isEmail($clientEmail) && ($subject != '') {
        if(isEmail($clientEmail)) {
            // Send email
    		$headers = "From: " . $clientName . " <" . $clientEmail . ">" . "\r\n" . "Reply-To: " . $clientEmail;
    		mail($emailTo, $subject . ' (blablabla)', $message, $headers);
        }
     
        echo json_encode($array);
     
    }
     
    ?>

    Et enfin le code du script (send.js) appelé pour le texte qui est censé s'afficher après l'envoi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    /*
         Contact form
    */
    jQuery(document).ready(function() {
        $('.contact-form form').submit(function() {
     
            $('.contact-form form .nameLabel').html('Name');
            $('.contact-form form .emailLabel').html('Email');
            $('.contact-form form .messageLabel').html('Message');
     
            var postdata = $('.contact-form form').serialize();
            $.ajax({
                type: 'POST',
                url: 'assets/send.php',
                data: postdata,
                dataType: 'json',
                success: function(json) {
                    if(json.nameMessage != '') {
                        $('.contact-form form .nameLabel').append(' - <span class="violet" style="font-size: 13px; font-style: italic"> ' + json.nameMessage + '</span>');
                    }
                    if(json.emailMessage != '') {
                        $('.contact-form form .emailLabel').append(' - <span class="violet" style="font-size: 13px; font-style: italic"> ' + json.emailMessage + '</span>');
                    }
                    if(json.messageMessage != '') {
                        $('.contact-form form .messageLabel').append(' - <span class="violet" style="font-size: 13px; font-style: italic"> ' + json.messageMessage + '</span>');
                    }
                    if(json.nameMessage == '' && json.emailMessage == '' && json.messageMessage == '') {
                        $('.contact-form form').fadeOut('fast', function() {
                            $('.contact-form').append('<p><span class="violet"> <h1> Merci de votre message ! </h1> <h2>\n 00 00 00 00 00 </h2> </span> \n Offre limitée dans le temps !</p>');
                        });
                    }
                }
            });
            return false;
        });
    });

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Il manquerait pas l'apostrophe du debut sur la ligne 6 ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $('.contact-form form').submit(function() {
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Candidat au Club
    Homme Profil pro
    Webdesigner
    Inscrit en
    Janvier 2015
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Janvier 2015
    Messages : 2
    Par défaut
    Non en fait elle y est ... Je ne sait pas pour quelle raison elle a sauté quand j'ai copié le code ! Je la corrige ici pour plus de lisibilité

  4. #4
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par défaut
    C'est tout à fait normal... ton tableau est défini comme suit :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $array = array();
        $array['messageMessage'] = ''; 
        $array['nameMessage'] = '';
        $array['emailMessage'] = '';
        $array['subjectMessage'] = '';
    et il n'est jamais modifié jusqu'à
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo json_encode($array);
    donc ce que tu reçois en réponse est logique...
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

Discussions similaires

  1. [AJAX] Formulaire sous AJAX !!!
    Par urai1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2007, 21h36
  2. [AJAX] Formulaire inscription ..
    Par Lunthear dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 11/03/2007, 12h35
  3. [AJAX] Formulaire en AJAX
    Par myriam.kone dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/11/2006, 13h41
  4. [AJAX] Ajax, formulaire, div et select
    Par n8ken dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/09/2006, 10h51
  5. [AJAX] Formulaire prépopuler avec du ajax dans la page
    Par shwin dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 31/10/2005, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo