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

PHP & Base de données Discussion :

Aucun post recu par formulaire ajax


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut Aucun post recu par formulaire ajax
    Bonjour,

    mon formulaire m'envoi un email mais aucune information des post renseigner.

    Voici le code :

    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
    37
    38
    <?php
    $sendto   = "gaborit.elodie@gmail.com";
    $usermail = $_POST['email'];
    $nom = $_POST['nom'];
    $prenom = $_POST['prenom'];
    $tel = $_POST['tel'];
    $date_arrive = $_POST['date_arrive'];
    $date_depart = $_POST['date_depart'];
    $nbre_adultes = $_POST['nbre_adultes'];
    $nbre_enfants = $_POST['nbre_enfants'];
    $content  = nl2br($_POST['msg']);
     
    $subject  = "Formulaire de contact";
    $headers  = "From: " . strip_tags($usermail) . "\r\n";
    $headers .= "Reply-To: ". strip_tags($usermail) . "\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html;charset=utf-8 \r\n";
     
    $msg  = "<html><body style='font-family:Arial,sans-serif;'>";
    $msg .= "<h2 style='font-weight:bold;border-bottom:1px dotted #ccc;'>Contact formulaire</h2>\r\n";
    $msg .= "<p><strong>Envoyer par :</strong> ".$usermail."</p>\r\n";
    $msg .= "<p><strong>Nom :</strong> ".$nom."</p>\r\n";
    $msg .= "<p><strong>Tel :</strong> ".$tel."</p>\r\n";
    $msg .= "<p><strong>Date d'arrivée :</strong> ".$date_arrive."</p>\r\n";
    $msg .= "<p><strong>Date de départ :</strong> ".$date_depart."</p>\r\n";
    $msg .= "<p><strong>Nombre adultes :</strong> ".$nbre_adultes."</p>\r\n";
    $msg .= "<p><strong>Nombre enfants :</strong> ".$nbre_enfants."</p>\r\n";
    $msg .= "<p><strong>Message:</strong> ".$content."</p>\r\n";
    $msg .= "</body></html>";
     
     
    if(@mail($sendto, $subject, $msg, $headers)) {
        echo "true";
    } else {
        echo "false";
    }
     
    ?>
    et page formulaire :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    <div id="inline">
    <h2>Formulaire de contact</h2>
    <form id="contact" name="contact" action="#" method="post">
    <table>
        <tr>
        <td>
        <label for="email">Nom</label>
        </td><td>  
            <input id="nom" name="nom" class="txt">
            </td>
            </tr>
     
            <tr>
            <td>
            <label for="email">Telephone</label>
            </td>
            <td>
            <input id="tel" name="tel" class="txt">
            </td>
            </tr>
     
            <tr>
            <td>
    <label for="email">Date d'arrivée</label>
    </td>
            <td>
            <input id="date_arrive" name="date_arrive" class="txt">
            </td>
            </tr>
     
            <tr>
            <td>
            <label for="email">Date de départ</label>
            </td>
            <td>
            <input id="date_depart" name="date_depart" class="txt">
            </td>
            </tr>
     
            <tr>
            <td>
            <label for="email">Nombre d'adultes</label>
            </td>
            <td>
    <input id="nbre_adultes" name="nbre_adultes" class="txt">
            </td>
            </tr>
            <tr>
     
            <td>
    <label for="email">Nombre enfants</label>
    </td>
            <td>
    <input id="nbre_enfants" name="nbre_enfants" class="txt">
    </td></tr>
    <tr><td>
    <label for="email">E-mail</label>
    </td>
            <td>
    <input id="email" name="email" class="txt">
    </td></tr>
    <tr><td>
    <tr><td>
    <label for="msg">Message</label><br />
    </td>
            <td>
    <textarea id="msg" name="msg" class="txtarea"></textarea>
    </td></tr>
    <tr><td>
    <button id="send">Envoyer</button>
    </td></tr>
    </table>
    </form>
    </div>
     
    <script type="text/javascript">
    function validateEmail(email) {
        var reg = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
            return reg.test(email);
        }
     
        $(document).ready(function() {
            $(".modalbox").fancybox();
            $("#contact").submit(function() { return false; });
     
     
            $("#send").on("click", function(){
                var emailval  = $("#email").val();
                var msgval    = $("#msg").val();
                var msglen    = msgval.length;
                var mailvalid = validateEmail(emailval);
     
                if(mailvalid == false) {
                    $("#email").addClass("error");
                }
                else if(mailvalid == true){
                    $("#email").removeClass("error");
                }
     
                if(msglen < 4) {
                    $("#msg").addClass("error");
                }
                else if(msglen >= 4){
                    $("#msg").removeClass("error");
                }
     
                if(mailvalid == true && msglen >= 4) {
                    // if both validate we attempt to send the e-mail
                    // first we hide the submit btn so the user doesnt click twice
                    $("#send").replaceWith("<em>sending...</em>");
     
                    $.ajax({
                        type: 'POST',
                        url: 'sendmessage.php',
                        data: $("#contact").serialize(),
                        success: function(data) {
                            if(data == "true") {
                                $("#contact").fadeOut("fast", function(){
                                    $(this).before("<p class='success'><strong>Votre message à été envoyé!Merci.</strong></p>");
                                    setTimeout("$.fancybox.close()", 1000);
                                });
                            }
                        }
                    });
                }
            });
        });
    </script>
    merci.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    as-tu effectué le débogage de base ?
    • echo $...; pour vérifier les données PHP
    • alert(...); pour vérifier les données JS
    • Inspection via la touche "F12" -> Console -> Erreurs


    D'autre part, évite l'arobase "@mail(...)" qui masque l'erreur.

    Et utilise plutôt phpMailer à la place de mail().

  3. #3
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    J'ai une erreur fatale en boucle infinie dans la console liée ligne 126 disant que document.getElementById(...) vaut NULL.

    setTimeout($.fancybox.close, 1000);

    Mais je ne sais pas quoi modifier ?

    MERCI

  4. #4
    Invité
    Invité(e)
    Par défaut
    document.getElementById(...)

    ... vaut quoi ?? Ca peut servir comme info

  5. #5
    Membre éprouvé
    Inscrit en
    Janvier 2008
    Messages
    1 159
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 159
    Par défaut
    desolé voici mon site :

    test.fr

    et le tuto que j'ai suivi.

    http://designwoop.com/2012/07/tutori...-contact-form/

    merci.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bon.

    Ca semble parler de document.getElementById("promotion")...

Discussions similaires

  1. formulaire AJAX + PHP aucune action
    Par akrogames dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/05/2008, 15h48
  2. [AJAX] Comment envoyer un fichier par la méthode post à l'aide d'ajax?
    Par othmane126 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 12/03/2008, 12h00
  3. [AJAX] Methode post remplace + par espace
    Par dgedge dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/07/2006, 09h09
  4. [MySQL] Envoi d'images par formulaire et post-traitement
    Par mathieu7497 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 08/04/2006, 13h58

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