2010-12-11 24 views
0

J'ai un simple formulaire de contact par courriel qui a plusieurs champs de saisie. À l'heure actuelle, il envoie uniquement la valeur de l'un des champs (message). Comment puis-je modifier le code afin que je puisse envoyer toutes les informations des champs? J'ai environ 15 champs.Formulaire e-mail jQuery, comment envoyer toutes les informations des champs?

Voici le code:

$('#submit').click(function(){ 

$.ajax({ 
type: "POST", 
url: "mail.php", 
data: ({email : $("#email").val(), message: $("#message").val()}), 
cache: false, 
error: function() { 

    alert('did not go thru'); 
    }, 
success: function(html){ 
//$("#response").fadeIn("slow"); 
$("#tab1").html(html); 
//setTimeout('$("#response").fadeOut("slow")',2000); 
alert('mail sent'); 
} 
}); 


}); 

Répondre

0

Pourquoi ne pas ajouter les autres champs à données?

+0

ouais, je viens essayé. Ça marche. la seule question que j'ai maintenant est comment puis-je ajouter une pause entre les valeurs de champ de sorte qu'ils ne sont pas tous ensemble dans l'e-mail? –

+0

Toutes les valeurs de champs seront publiées sur le serveur. Cela dépend maintenant de la façon dont vous les manipulez là-bas. –

+1

Ce serait quelque chose que vous feriez dans mail.php. Les valeurs que vous transmettez sont comme des champs de formulaire, formatez donc l'e-mail comme vous le feriez avec n'importe quel message de formulaire. – charliegriefer

4

Si vous donnez la forme d'un identifiant au lieu, et déplacez le rappel à l'événement soumettre le formulaire, vous pouvez facilement utiliser la méthode serialize pour envoyer automatiquement le formulaire en entier:

$('#form-id').submit(function(){ 

$.ajax({ 
type: "POST", 
url: "mail.php", 
data: $(this).serialize(), 
cache: false, 
error: function() { 

    alert('did not go thru'); 
    }, 
success: function(html){ 
//$("#response").fadeIn("slow"); 
$("#tab1").html(html); 
//setTimeout('$("#response").fadeOut("slow")',2000); 
alert('mail sent'); 
} 
}); 


});