首页  >  文章  >  后端开发  >  如何将 Google 表格与 PHP 网站表单集成:分步指南

如何将 Google 表格与 PHP 网站表单集成:分步指南

王林
王林原创
2024-09-05 22:33:41837浏览

How to Integrate Google Sheets with a PHP Website Form: Step-by-Step Guide

  • 将表单数据直接存储在 Google 表格中有助于改进数据管理和协作。这种集成使各个团队成员能够实时查看和分析数据,而无需处理复杂的数据库查询。

1.创建 Google 表格

  • 前往 Google 表格。
  • 创建一个新工作表并相应命名,例如“表单提交”。
  • 在第一行中,为要存储的数据创建标头。例如,如果您要收集姓名、电子邮件和消息,请创建标题为“名称”、“电子邮件”和“消息”的列。

2.创建 Google Apps 脚本 Web 应用

  • 转到扩展>;应用程序脚本。

3.编写 Google Apps 脚本来接受表单数据

function doPost(e) {
  let ss = SpreadsheetApp.openById("123123asdasd"); // Change "SpreadsheetAppId" to your actual sheet id
  let sheet = ss.getSheetByName("Sheet1"); // Change "Sheet1" to your actual sheet name

  let data;
  try {
    data = JSON.parse(e.postData.contents);
  } catch (err) {
    data = e.parameter;
  }

  sheet.appendRow([data.fname, data.email, data.message]);

  return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
}

说明:

  • 函数 doPost(e)

    • 这是 Google Apps 脚本中的一个特殊函数,每当您的网络应用程序收到 HTTP POST 请求时就会触发该函数。 e参数包含表单发送的信息
  • let ss = SpreadsheetApp.openById("123123asdasd");

    • 此行通过其唯一 ID 打开 Google 电子表格。将 ID“123123asdasd”替换为您自己的 Google 工作表 ID,您可以在工作表的 URL 中找到该 ID。
  • varsheet = ss.getSheetByName("Sheet1");

    • 这将检索电子表格中您想要附加表单数据的特定工作表。如果您的工作表有不同的名称,请将“Sheet1”替换为您的实际工作表名称。
  • var 数据;
    • 该变量将在解析后存储传入的表单数据。
  • 尝试{ data = JSON.parse(e.postData.contents); } catch (err) { data = e.parameter; }

    • 这里,代码尝试将传入数据解析为 JSON,假设表单以 JSON 形式发送数据。如果解析失败(意味着表单使用 URL 编码格式),它将回退到 e.parameter,其中包含 URL 编码的表单数据。
    • JSON.parse(e.postData.contents):尝试将请求正文解析为 JSON。
    • e.parameter:如果表单数据以 URL 编码格式发送(这是典型的 HTML 表单),则保存表单数据。
  • sheet.appendRow([data.fname, data.email, data.message]);

    • 这会将表单中的数据附加到 Google 表格中的下一个可用行。数据是从数据对象中提取的,该对象包含表单输入字段
  • return ContentService.createTextOutput("成功").setMimeType(ContentService.MimeType.TEXT);

    • 成功将数据附加到工作表后,此行会向客户端(提交表单的网站或应用程序)返回一条成功消息(“成功”)。
      • ContentService.createTextOutput("Success"):创建包含单词“Success”的纯文本响应。
      • setMimeType(ContentService.MimeType.TEXT):将响应的 MIME 类型设置为纯文本。

4。将脚本部署为 Web 应用程序

  1. 单击“部署”>在脚本编辑器的右上角测试部署。
  2. 选择管理部署,然后单击新建部署。
  3. 在“选择类型”下拉列表中,选择 Web 应用程序。
  4. 在“执行为”下,选择“我”。
  5. 在“谁有权访问”下,选择“任何人”。
  6. 单击“部署”并复制生成的 Web 应用程序 URL。

5。用于向 Google Apps 脚本 Web 应用程序提交表单数据的 PHP 代码

HTML 代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Submit Form</title>
</head>
<body>
    <form method="post" action="submit.php">
        <label for="name">Name:</label>
        <input type="text" name="name" required><br>

        <label for="email">Email:</label>
        <input type="email" name="email" required><br>

        <label for="message">Message:</label>
        <textarea name="message" required></textarea><br>

        <input type="submit" value="Submit">
    </form>
</body>
</html>

PHP 代码:

<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $url = 'YOUR_WEB_APP_URL'; // Replace with your Google Apps Script Web App URL

    $postData = array(
        'name' => $_POST['name'],
        'email' => $_POST['email'],
        'message' => $_POST['message'],
    );

    $ch = curl_init($url);


    $postFields = http_build_query($postData);

    curl_setopt($ch, CURLOPT_POST, 1); // Send a POST request
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields); // Attach the POST fields
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Return the response as a string

    $response = curl_exec($ch);

    if ($response === false) {
        $error = curl_error($ch);
        echo "cURL error: $error";
    } else {
        echo "Server response: $response";
    }

    curl_close($ch);
}
?>

以上是如何将 Google 表格与 PHP 网站表单集成:分步指南的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn