首頁  >  文章  >  後端開發  >  如何將 Google 試算表與 PHP 網站表單整合:逐步指南

如何將 Google 試算表與 PHP 網站表單整合:逐步指南

王林
王林原創
2024-09-05 22:33:41858瀏覽

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