我在WordPress网站上使用Ninja Forms创建了一个表单。我有一个很长的表格,我把它分成了标签。当用户单击第一个按钮继续时,我想发送包含特定字段的电子邮件。问题是我的变量没有显示在我的电子邮件中。我收到空白的电子邮件。
我尝试了很多东西,包括ajax和一个单独的sendme.php。由于我使用的是Wordpress,我决定使用wp_mail函数。
这是我的代码。变量在我的jquery警报中有效,但仍未传递给我的电子邮件。
我把它包含在我的标题中。
$("#cont-btn").on('click', function (e) {
e.preventDefault();
var name = $("#ninja_forms_field_30").val();
var company = $("#ninja_forms_field_76").val();
var title = $("#ninja_forms_field_75").val();
var email = $("#ninja_forms_field_33").val();
var phone = $("#ninja_forms_field_32").val();
$.ajax({
type: "POST",
url: "sendme.php",
data:{ name: name, company: company, title: title, email: email, phone: phone },
success: function(data){
console.log(data);
}
})
});
这是我sendme.php的基础
<?php
$name = $_POST['name'];
$email = $_POST['email'];
$company = $_POST['company'];
$phone = $_POST['phone'];
$to = 'me@email.co';
$subject = 'Enterprise Quote (PT1)';
$message = 'Email: ' .$company ;
$headers = '';
mail($to, $subject, $message) or die('Error sending Mail'); //This method sends the mail.
?>
一些事情:
我不想验证表单。 我不想提交表格。 我希望用户留在页面上。
非常感谢任何帮助。感谢。
答案 0 :(得分:0)
你不能以这种方式混合使用PHP和Javascript,你必须将php分开并使用AJAX请求触发它。
首先将php代码放在一个单独的文件中:
send.php
<?php
$headers = 'From: Me Myself <me@example.net>';
$message = $_POST['et_contact_message'];
$message .= '
Name: ' . $_POST['ninja_forms_field_30'];
$message .= '
Company: ' . $_POST['ninja_forms_field_76'];
$message .= '
Email: ' . $_POST['ninja_forms_field_33'];
$message .= '
Phone: ' . $_POST['ninja_forms_field_32'];
wp_mail( 'myemail@company.com', 'Enterprise Get a Quote (PT1)', $message, $headers );
?>
然后在你的JS(jQuery)
中$("#cont-btn").on('click', function (e) {
e.preventDefault();
var formData = $('#the-form').serialize(); //replace 'the-form' with your form id
$.post('/link/to/send.php', formData, function(res){
});
});