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

时间:2015-01-12 22:58:28

标签: javascript php jquery wordpress forms

我在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.
?>

一些事情:

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

非常感谢任何帮助。感谢。

1 个答案:

答案 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){

  });
});