![](/img/trans.png)
[英]HTML form: Send an additional notification email via jQuery and PHP mail
[英]JQuery object to PHP via ajax to send a mail()
因此,我试图将一个对象从jQuery函数发送到PHP脚本,以通过mail()发送它们,但是我的电子邮件始终为空,因此我认为我可能不太了解如何正确执行该操作工作
这是jQuery函数
function sendForm() {
$surname = $('#surname').val();
$name = $('#name').val();
$email = $('#email').val();
$comment = $('#q4').val();
$to = 'asd@efg.de'
$subject = 'Contact Form'
$datastring = {$surname,$name,$email,$comment,$to,$subject}
$.ajax({
url: 'send.php',
type: 'post',
data: $datastring,
success: function() {
alert('email sent!');
}
});
return false;
}
这里是send.php
<?php
$to = $_POST[$to];
$subject = $_POST[$subject];
$message = $_POST[$comment];
$headers = 'From: webmaster@example.com' . "\r\n" .
'Reply-To: webmaster@example.com' . "\r\n" .
'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);
?>
我想念什么? 谢谢您的帮助!
编辑:我检查了$ datastring,它具有我想要的形式的所有值。 另存为对象
您必须提供数据对象名称的属性,否则将出现错误:
$datastring = {
surname : $surname,
name : $name,
email : $email,
comment : $comment,
to : 'asd@efg.de',
subject : 'Contact Form'
};
在PHP方面,您再次通过该名称获取值:
$surname = $_POST["surname"];
$name = $_POST["name"];
$email = $_POST["email"];
$comment = $_POST["comment"];
$to = $_POST["to"];
$subject = $_POST["subject"];
创建对象的方式使每个值都不undefined
,因为您没有真正的键和值,因此您需要这样做
function sendForm() {
$datastring = {
'surname' : $('#surname').val(),
'name' : $('#name').val(),
'email' : $('#email').val(),
'comment' : $('#q4').val(),
'to' : 'asd@efg.de',
'subject' : 'Contact Form'
}
$.ajax({
url : 'send.php',
type : 'post',
data : $datastring,
success : function() {
alert('email sent!');
}
});
return false;
}
要获取PHP中的值,请使用字符串作为键
$_POST["subject"];
尝试改变
$datastring = {$surname,$name,$email,$comment,$to,$subject}
至
$datastring = {'username':$surname,'name':$name,'email':$email,'contact':$comment,'to':$to,'subject':$subject}
然后改变
$to = $_POST[$to];
至
$to = $_POST['to'];
与其余的php代码类似。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.