jQuery/PHP mail envoyer la voie de la facilité?
Ok, pour faire une longue histoire courte:
JavaScript:
jQuery("submit").click(function() {
var address = jQuery("#mail").val();
var title = jQuery("#title").val();
var name = jQuery("#name").val();
var mail = jQuery("#email").val();
var message = jQuery("#msg").val();
alert(address);
alert(title);
alert(name);
alert(mail);
alert(message);
jQuery.post("sendmail.php",
{address: address, title: title, name: name, mail: mail , message: message},
function(data){
jQuery("#email").html("<div id='sent'><p>Thank you for the message.</p><p>We will reply as soon as possible.</p></div>");
alert('sent');
});
return false;
});
Fonctionne bien (montre chaque valeur d'alerte), mais ne montre jamais div "envoyé". Et n'envoie jamais un courrier réel.
sendmail.php est à la bonne place, et son code est:
<?php
//getting variables from form
$emailTo = trim($_REQUEST['address']);
$subject = trim($_REQUEST['title']);;
$name = trim($_REQUEST['name']);
$emailFrom = trim($_REQUEST['mail']);
$message = $_REQUEST['message'];
//prepare email body text
$Body = "You have a message from: ";
$Body .= $name;
$Body .= "\n";
$Body .= "\n";
$Body .= $message;
//send prepared message
$sent = mail($emailTo, $subject, $Body);
//callback for jQuery AJAX
if ($sent){
echo 'sent';
}
else{}
print_r($_REQUEST); die();
?>
Mise à jour de jQuery, aussi ne fonctionne pas:
jQuery("#contact-form-send").click(function() {
var address = jQuery("#contact-form-mail-address").val();
var title = jQuery("#contact-form-mail-title").val();
var name = jQuery("#contact-form-name").val();
var mail = jQuery("#contact-form-email").val();
var message = jQuery("#contact-form-message").val();
var data = "&address=" + address + "&title=" + title + "&name=" + name + "&mail=" + mail + "&message=" + message;
jQuery.ajax({
type: "POST",
url: "sendmail.php",
data: data,
success: function(){
jQuery(".email-us").html("<div id='email-sent'><p>Thank you for the message.</p><p>We will reply as soon as possible.</p></div>");
}
});
return false;
});
bien sûr, je suis en train de travailler sur elle, bien sûr 🙂 j'ai totalement mis à jour le premier post, peut-être que vous serez en mesure de trouver le problème? Mais tout d'abord, je vais vérifier votre méthode .ajax.
vous avez fermé votre else w/o de mettre n'importe quoi dedans...peut-être le
ne change rien, j'ai pas accès à l'sendmail.php sortie, je suis juste en cliquant sur "soumettre" et il y a div apparition. Rien de plus. Il n'y a pas de redirection vers sendmail.php.
Sonne comme il fonctionne. Faire de l'ajax, qui n'est pas redirigé, mais elle se soumet à la demande. De sorte que si vous ne quittez jamais la page, mais pourtant, le mail est envoyé si votre sendmail.php est correcte. fondamentalement, ce que vous voulez faire est d'attacher le rappel des informations à la
ce n'est probablement pas de travail depuis que je reçois pas de mails... ;/ Mais je vais le faire sur localhost, je vais essayer de le vérifier sur le serveur à un autre endroit. De toute façon l'Id de l'amour pour attacher rappel info de la ligne droite, mais je ne suis pas sûr de savoir comment.
vous avez fermé votre else w/o de mettre n'importe quoi dedans...peut-être le
print_r($_REQUEST);
?ne change rien, j'ai pas accès à l'sendmail.php sortie, je suis juste en cliquant sur "soumettre" et il y a div apparition. Rien de plus. Il n'y a pas de redirection vers sendmail.php.
Sonne comme il fonctionne. Faire de l'ajax, qui n'est pas redirigé, mais elle se soumet à la demande. De sorte que si vous ne quittez jamais la page, mais pourtant, le mail est envoyé si votre sendmail.php est correcte. fondamentalement, ce que vous voulez faire est d'attacher le rappel des informations à la
jQuery(".email-us".html();
je vais mettre à jour ma réponse à nouveau pour afficher uce n'est probablement pas de travail depuis que je reçois pas de mails... ;/ Mais je vais le faire sur localhost, je vais essayer de le vérifier sur le serveur à un autre endroit. De toute façon l'Id de l'amour pour attacher rappel info de la ligne droite, mais je ne suis pas sûr de savoir comment.
OriginalL'auteur anonymous | 2011-02-19
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser Ajax. Son beaucoup plus facile. Voici un tutoriel ici sur l'envoi de mail à l'aide de PHP, Ajax, & jQuery:
Envoyer un mail à l'aide de PHP, Ajax et jQuery
cela ressemblerait à quelque chose de similaire à ceci:
Également dans votre fichier PHP, vous semblez utilisé la fonction mail deux fois.
fixez cette fonction d'erreur et de voir si elle affiche. si il affiche c'est probablement votre script php qui a problème. cependant, si c'est le cas, cela signifie que l'ajax était la réussite
ajout d'alerte pour le succès ou l'échec de sorte que vous saurez si votre ajax qui est défectueux ou votre script php. goodluck
OriginalL'auteur KJYe.Name