javascript - 如何在 php 中捕获 JSON 数据并将其发送到我的电子邮件

标签 javascript php json email contact-form

我有一个需要数据的联系表单,但我对此不太熟悉,无法弄清楚如何将其链接到我的 php 或如何将 php 链接到电子邮件。

我似乎无法找到哪个变量链接到 php 以及将 php 代码本身放在哪里。

当表单完成时调用此函数:

var onComplete = function() {


    // send data to php back end

    transmitJSON('post', "",  questions, function(error, data, meta) {
        console.log("php says:\n\n ",data)
        });

};
function transmitJSON(method, url, toSend, callback) {
  var callback = callback || function() {}

  var xhr = new XMLHttpRequest()
  xhr.open(method, url)
  xhr.setRequestHeader('Accept', 'application/json')

  xhr.onload = function() {
    if (this.status != 200) return callback({ status: this.status, statusText: xhr.statusText }, null, xhr)
      else {

      try {
        var json = JSON.parse(xhr.responseText)
      } catch (e) {
        return callback({ status: 202 }, xhr.responseText, xhr)
      }

      return callback(null, json, xhr)

    }
  }

  xhr.onerror = function() {
    return callback({ status: this.status, statusText: xhr.statusText }, null, xhr)
  }

  if (!toSend) xhr.send()
  else {
    xhr.setRequestHeader('Content-Type', 'application/json')
    xhr.send(JSON.stringify(toSend))
  }

};

我只有这个松散​​的 PHP 代码,但不知道把它放在哪里......:

if ($_SERVER['REQUEST_METHOD'] === 'POST') {

echo "php server here :)\n";

$json = file_get_contents('php://input');
$values = json_decode($json, true);

foreach($values as $question) {
        echo "----------------------\n\n";
        echo $question['question'] . "\n";
        echo $question['answer'] . "\n\n";  
} 

echo "end of message";
exit(0);

}

我希望 php 代码捕获 json 中的数据并将其发送到特定的电子邮件。

最佳答案

发送简单的不带 json 的内容:

$.post('path.php, {name: Var1, email: Var2}, function(data){
    alert(data);
});

https://api.jquery.com/jQuery.post/

在 PHP 中:

$v1 = $_POST['name'];
$v2 = $_POST['email'];

或者阅读如何在 javascript 中发送表单简单示例 FormData()

https://developer.mozilla.org/en-US/docs/Web/API/FormData/FormData

及功能:

https://github.com/breakermind/XMLHttpRequest

关于javascript - 如何在 php 中捕获 JSON 数据并将其发送到我的电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57838972/

相关文章:

javascript - 循环遍历数组并检查其中的数组是否具有特定值

javascript - jQuery 不工作,但 document.querySelector 可以 (CasperJS)

javascript - 请帮我加快这个麻将算法

javascript - 使用 javascript 的正则表达式验证 - 法语字母表在 IE6 中不起作用

javascript - 如何使用数据库值填充动态附加 div 中的下拉列表

php - 关于 HTML5 或 Javascript 或 jQuery 中的图像上传验证

php - 如何在mysql中为接收数据的表创建编辑和删除?

c# - 将参数传递给 json webservice

Android Wear Volley onResponse 错误 null

javascript 搜索 json 对象