通过 PHP 表单发送文本框变量

send textbox variables via php form

本文关键字:文本 变量 PHP 表单 通过      更新时间:2023-09-26

我在我的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); 
    }
  })
});

这就是我送我的基础.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.
?>

几件事:

我不想验证表单。我不想提交表格。我希望用户留在页面上。

任何帮助将不胜感激。谢谢。

你不能以这种方式混合PHP和Javascript,你必须将php分开并使用AJAX请求触发它。

所以首先把 php 代码放在一个单独的文件中:

发送.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){
  });
});