• Hello,
    I have a probleme with a dev from one day so i post here. Maybe someoine have a solution.
    I created à custom contact form in a template wordpress. Form is basic (name, surname…).
    The form is in the template and send data via ajax to a process.php files which is in my template folder.
    The process.php files receive and answer the data but don’t save in BDD the DATA. But if i call the process.php file manually it’s ok.
    SO i think it’s AJAX which don’t do what i want. But i don’t see how to do that.

    My form is like that :

    v id="form_contact">
        <form action="<?php echo get_bloginfo('stylesheet_directory')?>/process.php" id="contact" method="POST">
    	
    	<div id="msgok" style="display:none" >
    	<div class="alert alert-danger"><button class="close" type="button" data-dismiss="alert" aria-hidden="true">×</button><strong>Message envoyé</strong></div>
    	</div>
            <p>
                <label for="nom" class="nom">Nom</label>
                <br /><input id="nom" name="nom" type="text">
                <span id="msg_nom"></span>
            </p>
            <p>
                <label for="sujet" class="sujet">Sujet</label>
                <br /><input id="sujet" name="sujet" type="text">
                <span id="msg_sujet"></span>
            </p>
            <p>
                <label for="email">Email</label>
                <br /><input id="email" name="email" type="email">
                <span id="msg_email"></span>
            </p>
            <p>
                <label for="message">Message</label>
                <br /><textarea id="message" name="message" rows="10" cols="80"></textarea>
               <span id="msg_message"></span>
            </p>
            <p>
                <input type="submit" value="Envoyer" />
            </p>
        </form>
        <span id="msg_all"></span> 
    </div><!-- end of #form_contact -->

    My php file like that

    <?php
       
     ////test save bdd ////
       
          if ($_SERVER["REQUEST_METHOD"] == "POST") {
     require_once($_SERVER['DOCUMENT_ROOT'].'/site3/wp-load.php');
    	require_once ($_SERVER['DOCUMENT_ROOT'].'/site3/wp-config.php');
    		global $wpdb;
    $table_name = $wpdb->prefix . "contact_perso";
    $wpdb->insert($table_name , array('id' => "" ,'nom' => "123" ,'sujet' => "456",'email' => "0", 'message' => "123", 'id_auteur' => "123") );
    	  }
      
    		
    		////test save bdd ////  
       
       
       
        // CONDITIONS NOM
        if ( (isset($_POST["nom"])) && (strlen(trim($_POST["nom"])) > 0) ) {
            $nom = stripslashes(strip_tags($_POST["nom"]));
        } else {
            echo "Merci d'écrire un nom <br />";
            $nom = "";
        }
    
        // CONDITIONS SUJET
        if ( (isset($_POST["sujet"])) && (strlen(trim($_POST["sujet"])) > 0) ) {
            $sujet = stripslashes(strip_tags($_POST["sujet"]));
        } else {
            echo "Merci d'écrire un sujet <br />";
            $sujet = "";
        }
    
        // CONDITIONS EMAIL
        if ( (isset($_POST["email"])) && (strlen(trim($_POST["email"])) > 0) && (filter_var($_POST["email"], FILTER_VALIDATE_EMAIL)) ) {
            $email = stripslashes(strip_tags($_POST["email"]));
        } elseif (empty($_POST["email"])) {
            echo "Merci d'écrire une adresse email <br />";
            $email = "";
        } else {
            echo "Email invalide :(<br />";
            $email = "";
        }
    
        // CONDITIONS MESSAGE
        if ( (isset($_POST["message"])) && (strlen(trim($_POST["message"])) > 0) ) {
            $message = stripslashes(strip_tags($_POST["message"]));
        } else {
            echo "Merci d'écrire un message<br />";
            $message = "";
        }
    
        // Les messages d'erreurs ci-dessus s'afficheront si Javascript est désactivé
    
        // PREPARATION DES DONNEES
        $ip           = $_SERVER["REMOTE_ADDR"];
        $hostname     = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
        $destinataire = "[email protected]";
        $objet        = "[Site Web] " . $sujet;
        $contenu      = "Nom de l'expéditeur : " . $nom . "\r\n";
        $contenu     .= $message . "\r\n\n";
        $contenu     .= "Adresse IP de l'expéditeur : " . $ip . "\r\n";
        $contenu     .= "DLSAM : " . $hostname;
    
        $headers  = "CC: " . $email . " \r\n"; // ici l'expediteur du mail
        $headers .= "Content-Type: text/plain; charset=\"ISO-8859-1\"; DelSp=\"Yes\"; format=flowed /r/n";
        $headers .= "Content-Disposition: inline \r\n";
        $headers .= "Content-Transfer-Encoding: 7bit \r\n";
        $headers .= "MIME-Version: 1.0";
    
        // SI LES CHAMPS SONT MAL REMPLIS
        if ( (empty($nom)) && (empty($sujet)) && (empty($email)) && (!filter_var($email, FILTER_VALIDATE_EMAIL)) && (empty($message)) ) {
            echo 'echec :( <br /><a href="contact.html">Retour au formulaire</a>';
        } else {
            // ENCAPSULATION DES DONNEES ok
    		
    		
            mail($destinataire, $objet, utf8_decode($contenu), $headers);
            echo 'Formulaire envoyé';
        }
    
        // Les messages d'erreurs ci-dessus s'afficheront si Javascript est désactivé
    ?>

    and JS script as :

    <script>
        $(function(){
            $("#contact").submit(function(event){
                var nom        = $("#nom").val();
                var sujet      = $("#sujet").val();
                var email      = $("#email").val();
                var message    = $("#message").val();
                var dataString = nom + sujet + email + message;
                var msg_all    = "Merci de remplir tous les champs";
                var msg_alert  = "Merci de remplir ce champs";
    
                if (dataString  == "") {
                    $("#msg_all").html(msg_all);
                } else if (nom == "") {
                    $("#msg_nom").html(msg_alert);
                } else if (sujet == "") {
                    $("#msg_sujet").html(msg_alert);
                } else if (email == "") {
                    $("#msg_email").html(msg_alert);
                } else if (message == "") {
                    $("#msg_message").html(msg_alert);
                } else {
                    $.ajax({
                        type : "POST",
                        url: $(this).attr("action"),
                        data: $(this).serialize(),
                        success : function() {
    					document.getElementById("msgok").style.display = "";
    						setTimeout(function() {
    							document.getElementById("contact").style.display = "none";
    						}, 3000);
    						
                        },
                        error: function() {
                            $("#contact").html("<p>Erreur d'appel, le formulaire ne peut pas fonctionner</p>");
                        }
                    });
                }
    
                return false;
            });
        });
    </script>
  • The topic ‘Contact form with ajax + save form in bdd’ is closed to new replies.