Formulaire de contact en ajax
jordane45 Messages postés 38346 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 16 décembre 2024 - 27 févr. 2024 à 21:20
- Formulaire de contact en ajax
- Formulaire de réclamation facebook - Guide
- Créer un groupe whatsapp sans contact - Guide
- Formulaire de reclamation instagram - Guide
- Bloquer contact whatsapp - Guide
- Recuperer contact carte sim - Guide
4 réponses
23 févr. 2024 à 19:05
bonjour,
Si je lis bien, ta page php contact.php attend les cinq données suivantes dans le POST: 'submit', 'username', 'mail', 'subject', et 'message'.
Dans ton code ajax, tu lui envoies quatre données: 'nom', 'mail', 'sujet', et 'message'
Il manque donc une des données, et tu as deux qui sont mal nommées.
23 févr. 2024 à 20:37
Bonjour
En complément de ce que t'a déjà dit yg_be..
Les données, en 'post', ll est préférable de les envoyer au format json.
var dataString = { nom:username ,mail:mail ,sujet:subject ,message:message };
Ton autre souci vient du fait que tu "submit" ton formulaire.
La page se recharge sans avoir traité ton js.
Pour remédier à ça .. soit tu ajoutes un "preventDefault" dans ton js au momment de "submit" .. soit tu remplaces ton bouton par un type "button" ... et tu utilises, sur ton bouton un ONCLICK pour lancer ton code.
27 févr. 2024 à 18:50
Bonsoir, j'ai fait comme tu m'as dit. rien de change.
script.js
$(document).ready(function() { $('#success').hide(); $('#load').hide(); $('#contact').submit(function(event) { event.preventDefault(); valid = true; if($('#username').val() == '') { $('#username').css('border', '1px solid #8b0000'); $('.error-name').text('Merci de remplir votre nom !').css('color', '#8b0000'); valid = false; } else { $('#username').css('border', '1px solid green'); $('.error-name').text(''); } if(!$('#mail').val().match(/^[a-z0-9._-]+@[a-z0-9.-]{2,}[.][a-z]{2,3}$/)) { $('#mail').css('border', '1px solid #8b0000'); $('.error-mail').text('Merci de renseigner un email valide !').css('color', '#8b0000'); valid = false; } else { $('#mail').css('border', '1px solid green'); $('.error-mail').text(''); } if($('#subject').val() == '') { $('#subject').css('border', '1px solid #8b0000'); $('.error-subject').text('Merci de remplir votre sujet !').css('color', '#8b0000'); valid = false; } else { $('#subject').css('border', '1px solid green'); $('.error-subject').text(''); } if($('#message').val() == '') { $('#message').css('border', '1px solid #8b0000'); $('.error-text').text('Merci de remplir votre message !').css('color', '#8b0000'); valid = false; } else { $('#message').css('border', '1px solid green'); $('.error-text').text(''); } if(valid == true) { var submit = $('#submit').val(); var username = $('#username').val(); var mail = $('#mail').val(); var subject = $('#subject').val(); var message = $('#message').val(); var dataString = { submit : submit, username : username, mail : mail, subject : subject, message : message }; var form_url = $(this).attr('action'); var form_method = $(this).attr('method'); $.ajax({ type: form_method, url: form_url, data: dataString, beforeSend: function() { $('#load').fadeIn(); }, success: function() { $('#load').fadeOut(6000); $('#contact').slideUp(6000); $('#success').slideDown(6000); $('#success').text('Votre message a bien été envoyé.'); } }); } }); });
27 févr. 2024 à 21:20
Peux tu placer des console.log dans ton code histoire de voir où il passe, la valeur des variables...
Et puis, il faudrait également regarder dans la console de ton navigateur si il y a des messages .. ne serait-ce que la réponse de l'appel ajax.
(pour débuguer l'ajax, merci de suivre ceci : https://forums.commentcamarche.net/forum/affich-37772066-php-jquery-debugage-ajax?v8th5MQcMDx5M3B0rKm5-neTZwY_nmCtrBX4svMXzV8 )
23 févr. 2024 à 19:16
De plus, il me semble que, dans ton code ajax, tu spécifies "post" comme type, et tu prépares tes données comme si c'était un "get".