Google スプレッドシートを PHP ウェブサイト フォームと統合する方法: ステップバイステップ ガイド

王林
リリース: 2024-09-05 22:33:41
オリジナル
849 人が閲覧しました

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

  • フォーム データを Google スプレッドシートに直接保存すると、データ管理とコラボレーションが向上します。この統合により、さまざまなチーム メンバーが高度なデータベース クエリを処理することなく、リアルタイムでデータを表示および分析できるようになります。

1. Google スプレッドシートを作成する

  • Google スプレッドシートに移動します。
  • 新しいシートを作成し、「フォーム送信」などの名前を付けます。
  • 最初の行で、保存するデータのヘッダーを作成します。たとえば、名前、電子メール、およびメッセージを収集している場合は、「名前、電子メール、およびメッセージ」というタイトルの列を作成します。

2. Google Apps Script 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)

    • これは、Web アプリが HTTP POST リクエストを受信するたびにトリガーされる、Google Apps Script の特別な関数です。 e パラメータには、フォームによって送信された情報が含まれます。
  • let ss = SpreadsheetApp.openById("123123asdasd");

    • この行は、一意の ID で Google スプレッドシートを開きます。 ID「123123asdasd」を、シートの URL にある自分の Google シート ID に置き換えます。
  • varsheet = ss.getSheetByName("Sheet1");

    • これにより、フォーム データを追加するスプレッドシート内の特定のシートが取得されます。シートの名前が異なる場合は、「Sheet1」を実際のシート名に置き換えます。
  • var データ;
    • この変数は、受信フォーム データが解析された後に保存されます。
  • try { data = JSON.parse(e.postData.contents); } キャッチ (エラー) { データ = e.parameter; }

    • ここでは、フォームがデータを JSON として送信すると仮定して、コードは受信データを JSON として解析しようとします。解析が失敗した場合 (フォームが代わりに URL エンコードされた形式を使用したことを意味します)、URL エンコードされたフォーム データを含む e.parameter にフォールバックします。
    • JSON.parse(e.postData.contents): リクエストの本文を JSON として解析しようとします。
    • e.parameter: URL エンコード形式で送信された場合、フォーム データを保持します (HTML フォームでは一般的です)。
  • sheet.appendRow([data.fname, data.email, data.message]);

    • これにより、フォームのデータが Google スプレッドシートの次に使用可能な行に追加されます。データは、フォーム入力フィールド
    • に含まれるデータ オブジェクトから抽出されます。
  • return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);

    • シートへのデータの追加が成功すると、この行は成功メッセージ (「成功」) をクライアント (フォームを送信した Web サイトまたはアプリ) に返します。
      • ContentService.createTextOutput("Success"): "Success" という単語を含むプレーン テキスト応答を作成します。
      • setMimeType(ContentService.MimeType.TEXT): 応答の MIME タイプをプレーン テキストに設定します。

4.スクリプトを Web アプリとしてデプロイします

  1. 「デプロイ」をクリックします>スクリプトエディタの右上隅で展開をテストします。
  2. 「導入の管理」を選択し、「新しい導入」をクリックします。
  3. [タイプの選択] ドロップダウンで、[Web アプリ] を選択します。
  4. [実行名] で [自分] を選択します。
  5. 「アクセスできるユーザー」で、「誰でも」を選択します。
  6. 「デプロイ」をクリックし、生成された Web アプリの URL をコピーして、それをコピーします。

5.フォーム データを Google Apps Script 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 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート