JS Ajax PHP e-MAIL

WRInaute accro
Bonjour,

Tout les templates formulaires sont aujourd'hui vendu en ajax, pas de rechargement de page, mais je n'ai pas trouvé de tuto à jour sur comment intégrer php.

Il y a bien une fonction js/ajax
Code:
            .done(function (response) {
                // Make sure that the formMessages div has the 'success' class.
                $(formMessages).removeClass('error');
                $(formMessages).addClass('success');
                // Set the message text.
                $(formMessages).text('Thanks! Message has been sent.');
 
            })


et une sortie HTML
HTML:
<div id="success_fail_info"></div>


Comment intégrer la fonction mail php ?
 
WRInaute accro
Truc torché à la rache :
PHP:
<?php
if (!empty($_POST) && !empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') {
    if (mail('koog@ar.com', 'New message', $_POST['message'])) {
        echo "Message envoyé avec succès.";
    } else {
        http_response_code(500);
    }
    exit();
}
?>
<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">
    <title>Contact</title>
  </head>
  <body>
    <div class="container">
        <form id="contact-form" action="<?php echo $_SERVER['REQUEST_URI']; ?>">
            <div class="form-group">
                <label for="firstname">Firstname</label>
                <input type="text" id="firstname" name="firstname" class="form-control" required>
            </div>
            <div class="form-group">
                <label for="lastname">Lastname</label>
                <input type="text" id="lastname" name="lastname" class="form-control" required>
            </div>
            <div class="form-group">
                <label for="message">Message</label>
                <textarea id="message" name="message" class="form-control" required></textarea>
            </div>
          
            <button type="submit" id="submit" class="btn btn-primary">Submit</button>
        </form>
    </div>

    <script src="https://code.jquery.com/jquery-3.4.1.min.js" crossorigin="anonymous"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
  
    <script>
        $(function () {
            $('#submit').on('click', function (e) {
                e.preventDefault();
                let $form = $('#contact-form');
              
                if ($form.get(0).checkValidity()) {
                    $.post($form.attr('action'), $form.serializeArray()).done(function (data) {
                        $form.prepend(`<div class="alert alert-success">${data}</div>`);
                    }).fail(function(jqXHR, textStatus, errorThrown) {
                        $form.prepend(`<div class="alert alert-danger">Une erreur est survenue.</div>`)
                    });
                } else {
                    $form.get(0).reportValidity();
                }
            });
        });
    </script>
  </body>
</html>
 
Discussions similaires
Haut