CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

formulaire javascript

janane
janane
Niveau 4
16 juillet 2012 à 23:07:28

Bonjour,

J'ai créé un formulaire de contact pour mon site internet.
Il fonctionne, cependant j'aimerais savoir où renseigner le mail du destinataire du formulaire (à savoir moi) pour que je recoive le mail quand on clique sur le bouton "GO".

Voici mon code HTML :

<!-- CONTACT FORM -->
<div id="contact_form">

<!-- Name -->
<input type="text" name="name" value="NOM *" id="form-name" />

<!-- Email -->
<input type="text" name="mail" value="EMAIL *" id="form-mail" />

<!-- Message (textarea) -->
<textarea name='message' rows="5" cols="62" id="form-message">MESSAGE *</textarea>

<!-- Button -->
<button type="submit" id="button" >Go</button>

<!--container for the results of mail.php-->
<div id="result"></div>

</div>
<!-- END CONTACT FORM -->

et mon code javascript :

/* 11. Validate contact form
==========================================*/
var name_value = 'NOM *'; //default placeholder text for the name field
var mail_value = 'EMAIL *'; //default placeholder text for the email field
var message_value= 'MESSAGE *'; //default place holder text for the textarea

var missing_name = 'Entrez votre nom SVP'; //error message, if the name field is empty
var missing_mail = 'Renseignez votre adresse mail SVP'; //error message, if the mail field is empty
var invalid_mail = 'Adresse mail invalide'; //error message, if the user's email address is invalid
var missing_message = 'Entrez votre message SVP'; //error message, if the textarea is empty

var error_color = '#990000'; //text color of the error messages
var default_color = '#333333'; //default text color of the contact form

$('input#form-name').click(function() {

var form_name = $('input#form-name').val();

if (form_name == missing_name)
{
$('input#form-name').css("color" , default_color);
$('input#form-name').val();
}
else if (form_name == name_value)
{
$('input#form-name').val(
);
$('input#form-name').css("color" , default_color);
}

});

$('input#form-mail').click(function() {

var form_mail = $('input#form-mail').val();

if (form_mail == missing_mail || form_mail == invalid_mail)
{
$('input#form-mail').css("color" , default_color);
$('input#form-mail').val();
}
else if (form_mail == mail_value)
{
$('input#form-mail').val(
);
$('input#form-mail').css("color" , default_color);
}

});

$('textarea#form-message').click(function() {

var message_content = $('textarea#form-message').val();

if (message_content == missing_message || message_content == message_value)
{
$('textarea#form-message').css("color" , default_color);
$('textarea#form-message').val('');
}
});

$('#contact_form button#button').click(function() {

var name = $('input#form-name').val();
var email = $('input#form-mail').val();
var telephone = $('input#form-telephone').val();
var comments = $('textarea#form-message').val();

if (name == "" || name == missing_name || name == name_value)
{
$('input#form-name').css("color" , error_color);
$('input#form-name').val(missing_name);
return false;
}

if (email == "" || email == invalid_mail || email == mail_value)
{
$('input#form-mail').css("color" , error_color);
$('input#form-mail').val(missing_mail);
return false;
}

var atpos=email.indexOf("@");
var dotpos=email.lastIndexOf(".");
if (atpos<1 || dotpos<atpos+2 || dotpos+2>=email.length)
{
$('input#form-mail').css("color" , error_color);
$('input#form-mail').val(invalid_mail);
return false;
}

if (comments == "" || comments == message_value || comments == missing_message)
{
$('textarea#form-message').css("color" , error_color);
$('textarea#form-message').val(missing_message);
return false;
}

$("div#contact_form input[type='text']").remove();
$('div#contact_form textarea').remove();
$('div#contact_form button').remove();
$('div#result').append('<div id="loading"></div>');

$.ajax({
type: 'post',
url: 'mail.php',
data: 'name=' + name + '&email=' + email + '&comments=' + comments,

success: function(results) {
$('div#loading').remove();
$('div#result').html(results);
$(".success a").click(function(){ $("div.success").fadeOut("slow"); return false; });
$(".error a").click(function(){ $("div.error").fadeOut("slow"); return false; });
}
});

});//send click process ends here

Merci de m'aider, je galère dessus depuis 20h !

bob63
bob63
Niveau 11
16 juillet 2012 à 23:44:08

Dans mail.php appelé par ajax j'imagine. Tu as le contenu de ce fichier ? Le mail du form en haut, c'est le mail de l'expéditeur ?

Pseudo supprimé
Pseudo supprimé 17 juillet 2012 à 01:24:21

Logique que tu n'y arrives pas, ce code n'est même pas de toi :doute:

janane
janane
Niveau 4
17 juillet 2012 à 13:25:29

Aidez-moi svp. Si ça peut vous aider, j'ai pris modèle sur ce formulaire-ci http://www.magna-themes.com/support

vava740
vava740
Niveau 10
17 juillet 2012 à 15:17:27

Tu créé une page mail.php avec dedans :

<?php
$message = 'Nom: ' . $_POST['name'] . PHP_EOL;
$message .= 'Mail: ' . $_POST['email'] . PHP_EOL;
$message .= 'Message: ' . PHP_EOL . $_POST['comments'];
mail('tonadresse@truc.com', 'Sujet du message', $message);

Et à chaque envoi du formulaire de contact tu recevras un mail à l'adresse mise dans mail.php, avec dans le message le nom, le mail, et les commentaires. :ok:

C'est un code très basique pour te dépanner, je te conseille vivement de l'améliorer si tu connais le PHP, pour empêcher de flooder ta boîte mail, entre autres. :oui:

janane
janane
Niveau 4
17 juillet 2012 à 18:30:41

Merci pour ta réponse vava740. Hélas, je viens d'essayer et ça ne marche pas :S

janane
janane
Niveau 4
17 juillet 2012 à 18:33:20

Autant pour moi ça fonctionne ! Mille merci !

Je vais être embêtant mais quel code rentrer pour mettre une phrase qui indique que le message a bien été envoyé ?

vava740
vava740
Niveau 10
17 juillet 2012 à 18:54:28

Dans le PHP tu peux remplacer la dernière ligne par ça :

$success = mail('tonadresse@truc.com', 'Sujet du message', $message);
if($success) echo 'true';
else echo 'false';

Puis dans le JS, tu remplace cette partie :

$.ajax({
type: 'post',
url: 'mail.php',
data: 'name=' + name + '&email=' + email + '&comments=' + comments,

success: function(results) {
$('div#loading').remove();
$('div#result').html(results);
$(".success a").click(function(){ $("div.success").fadeOut("slow"); return false; });
$(".error a").click(function(){ $("div.error").fadeOut("slow"); return false; });
}
});

Par :

$.ajax({
type: 'post',
url: 'mail.php',
data: 'name=' + name + '&email=' + email + '&comments=' + comments,
error: function(jqXHR, textStatus) {
$('div#loading').remove();
$('div#result').html('Erreure liée à la requête');
$(".success a").click(function(){ $("div.success").fadeOut("slow"); return false; });
$(".error a").click(function(){ $("div.error").fadeOut("slow"); return false; });
},
success: function(response) {
$('div#loading').remove();
$('div#result').html(response == 'true' ? 'Message de succès' : 'Message d\'erreur (liée au serveur)');
$(".success a").click(function(){ $("div.success").fadeOut("slow"); return false; });
$(".error a").click(function(){ $("div.error").fadeOut("slow"); return false; });
}
});

Là j'ai rajouté le cas où le requête échoue côté client, le comportement est le même qu'avant sauf que le message est différent, au passage j'ai pas saisi le truc des div.success et div.error donc j'y ai pas touché.

Puis pour le succès de la requête, si jamais PHP n'arrive pas à envoyer le mail on peut afficher l'erreur (en sachant qu'elle vient du serveur), et sinon on a le message de succès. :ok:

janane
janane
Niveau 4
17 juillet 2012 à 19:14:03

Merci beaucoup :) !

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment