我从来没有用PHP编码过,所以我不知道我的代码是否正确。我试图运行我的PHP文件从我的JavaScript/jQuery代码使用 AJAX 。我似乎不明白什么是错的。没有电子邮件被发送,但我也没有得到任何错误。请帮助!此外,PHP代码中使用的email是我的真实email,只是我不想在问题中使用它,所以我改成了example。所有的东西都是从HTML表单中提取的。我根据它收集的信息给每个输入命名。
JavaScript语言
$.ajax({
type: "CONNECT",
url: "mail.php"
}).done(function(data){
alert("Message is sent");
});
PHP语言
<?php
$email = $_GET['email'];
$company_name = $_GET['companyname'];
$sender_name = $_GET['customername'];
$telephone_num = $_GET['telephonenum'];
$message = $_GET['message'];
$to = "example@gmail.com";
$subject = $company_name . " " . $sender_name;
$finished_message = "Name: " . $sender_name . "\n
Company: " . $company_name . "\n
Telephone Number: " . $telephone_num . "\n
Email: " . $email . "\n
Message:\n" . $message . "";
$finished_message = wordwrap($finished_message,70);
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
$headers .= "From: ". $sender_name . " <" . $email . ">";
mail($to,$subject,$finished_message,$headers);
?>
我尝试过在js文件中更改类型,但随后我抛出了错误。
2条答案
按热度按时间pvcm50d11#
下面是通过 AJAX 调用文件的问题的解决方案
希望对您有所帮助!
dgtucam12#
你似乎用错 AJAX ,你没有在请求中发送主体,我建议你这样做:
或使用FormData:
和PHP部分:你正在从GET对象中获取你的值。但是,你应该使用POST方法发送你的电子邮件表单。 AJAX 中,我已经写了
method: 'post'
。将$_GET
更改为$_POST
,一切都应该正常工作。我强烈建议验证传入的数据,至少验证它是否存在。