jQuery AJAX formulaire à l'aide de mail() de PHP script d'envoie de courriel, mais publier des données du formulaire HTML n'est pas défini
Merci de prendre le temps de regarder, les gars. Je suis de la création d'une assez basique AJAX formulaire de contact à l'aide de jQuery. Le mail envoie, mais lors de l'ouverture de l'e-mail il n'y a pas de données POST, donc je viens d'obtenir les chaînes que j'ai définie dans le script PHP. Sur mon téléphone, l'email du client, le contenu de l'e-mail dit littéralement 'undefined'. J'ai essayé d'ajouter différents types de données d'en-tête en vain, et un certain nombre de variations de la fonction PHP mail ().
Je suis plus que disposé à adopter une solution plus facile pour un simple AJAX formulaire, donc merci d'avance pour toutes les nouvelles approches.
Ici est de la forme:
<section id="left">
<label for="form_name">Name</label>
<input name="form_name" id="form_name" type="text" >
<label for="form_email">Email</label>
<input name="form_email" id="form_email" type="email" >
</section>
<section id="right">
<label for="form_msg">Message</label>
<textarea name="form_msg" id="form_msg"></textarea>
<input id="submit" class="button" name="submit" type="submit" value="Send">
</section>
</form>
L'AJAX de jQuery:
$(function() {
$("#contact .button").click(function() {
var name = $("#form_name").val();
var email = $("#form_email").val();
var text = $("#msg_text").val();
var dataString = 'name='+ name + '&email=' + email + '&text=' + text;
$.ajax({
type: "POST",
url: "email.php",
data: dataString,
success: function(){
$('.success').fadeIn(1000);
}
});
return false;
});
});
Le script PHP (fichier externe 'email.php'):
<?php
if($_POST){
$name = $_POST['form_name'];
$email = $_POST['form_email'];
$message = $_POST['form_msg'];
//send email
mail("[email protected]", "This is an email from:" .$email, $message);
}
?>
Vous devez vous connecter pour publier un commentaire.
Il n'est pas nécessaire de faire une chaîne de requête. Il suffit de mettre votre valeurs dans un objet et jQuery va prendre soin de tout le reste pour vous.
Laisser votre email.php code le même, mais de remplacer ce code JavaScript:
avec ceci:
De sorte que votre formulaire de saisie des noms correspondent.
Vous utilisez la mauvaise paramètres post:
Javascript/html Id ne sont pas pertinents pour le POST réelle, en particulier lorsque vous êtes à la construction de votre propre chaîne de données, et de ne pas utiliser les mêmes Identifiants.
Vous utilisez le mauvais nom des paramètres, essayez:
Vous code devrait être:
Js
Le PHP:
Votre script PHP (fichier externe 'email.php') devrait ressembler à ceci: