Gatsbyを作成し、配置します.GetFormとVercelを使用したJSフォーム
20901 ワード
スタティックサイトのフォーム提出を処理する開発者やデザイナーのために構築されたフォームバックエンドプラットフォームです.
GetFormはまた、強化されたスパムの保護を提供し、フォームのダウンロードを含むフォームの自動化、自動応答、カスタム通知、およびGoogleシート、スラック、Trelloなどの3 ^ RDのパーティーサービスへの接続.
このガイドでは、ファイルのアップロードフォームを処理する方法を発見します.JSプロジェクトは、GetFormを使用してフォームを提出し、それをVercelで展開します.
開始する前に、無料Vercel 勘定.
ステップ1:あなたのギャツビーを設定します.JSプロジェクト
インストール
あなたの怒りを訪問し、新しいフォームのエンドポイントを作成します.GetFormは、フォームエンドポイントとエンドポイントのタイムゾーンを指定するよう要求します.
フォームエンドポイントを作成すると、エンドポイントの概要ページからフォームのエンドポイントをコピーできます.これは、フォームデータを送信する場所としてプロジェクトで使用されます.
ステップ3 : Gatsbyプロジェクトでフォームコンポーネントを作成する
を作成する
我々は、完全なフォームデータをaxiosにオブジェクトとして渡します.Axiosはこれを パッケージマネージャ、NPMまたは糸を使用してインストールすることでブートストラップを有効にします. NPMで
ステップ4 : vercelで展開する
を使用すると、あなたのVercel for Git , それがgitリポジトリにプッシュされていることを確認します.
選択したgitプロバイダを使用してプロジェクトを GitHub
GitLab
Bitbucket
After your project has been imported, all subsequent pushes to branches will generate Preview Deployments , そして、すべての変更はProduction Branch (一般的に「主」ということは)Production Deployment .
Localhostか生産環境から受け取ったフォーム提出物は、SmartViewまたはTable ViewオプションのいずれかでGetFormエンドポイントダッシュボードリストに表示されます.
一旦展開されると、あなたは次のようなあなたのChiアプリのライブを見るためにURLを得ますhttps://gatsby-vercel-getform.vercel.app/
ボーナス:getform自動化
GetFormは、カスタムリダイレクト、Google Recaptchaの統合、カスタム電子メールテンプレート、autoresponseメールとZapierの統合のセットアップの自動化アクションをすることができます.畝
たとえば、カスタムメールテンプレートのアクションを使用すると、メール本文の独自のHTMLを使用することができますし、名前と電子メールの件名からは、カスタマイズしてください.
注: GetForm RunおよびGentooのgetFormオートメーションアクションに関する詳細な情報を見つけることができますfeatures getformのセクション.入出力
GetFormはまた、強化されたスパムの保護を提供し、フォームのダウンロードを含むフォームの自動化、自動応答、カスタム通知、およびGoogleシート、スラック、Trelloなどの3 ^ RDのパーティーサービスへの接続.
このガイドでは、ファイルのアップロードフォームを処理する方法を発見します.JSプロジェクトは、GetFormを使用してフォームを提出し、それをVercelで展開します.
開始する前に、無料Vercel 勘定.
ステップ1:あなたのギャツビーを設定します.JSプロジェクト
インストール
Gatsby CLI
端末から:$ npm install -g gatsby-cli
と新しいGatsbyアプリケーションを作成します.$ gatsby new gatsby-site
を加えるaxios
プロジェクトへの依存$ npm install axios
Step 2 : GetFormのフォームエンドポイントを作成します.ioあなたの怒りを訪問し、新しいフォームのエンドポイントを作成します.GetFormは、フォームエンドポイントとエンドポイントのタイムゾーンを指定するよう要求します.
フォームエンドポイントを作成すると、エンドポイントの概要ページからフォームのエンドポイントをコピーできます.これは、フォームデータを送信する場所としてプロジェクトで使用されます.
ステップ3 : Gatsbyプロジェクトでフォームコンポーネントを作成する
を作成する
ContactForm.js
ファイル/src/pages
以下のコードを持つディレクトリimport axios from 'axios';
import React, { useState } from "react"
import 'bootstrap/dist/css/bootstrap.min.css';
const GETFORM_FORM_ENDPOINT = "YOUR-FORM-ENDPOINT";
function Form() {
const [formStatus, setFormStatus] = useState(false);
const [query, setQuery] = useState({
name: "",
email: "",
});
const handleFileChange = () => (e) => {
setQuery((prevState) => ({
...prevState,
files: e.target.files[0]
}));
};
const handleChange = () => (e) => {
const name = e.target.name;
const value = e.target.value;
setQuery((prevState) => ({
...prevState,
[name]: value
}));
};
const handleSubmit = (e) => {
e.preventDefault();
const formData = new FormData();
Object.entries(query).forEach(([key, value]) => {
formData.append(key, value);
});
axios
.post(
GETFORM_FORM_ENDPOINT,
formData,
{headers: {Accept: "application/json"}}
)
.then(function (response) {
setFormStatus(true);
setQuery({
name: "",
email: "",
});
console.log(response);
})
.catch(function (error) {
console.log(error);
});
};
return (
<div class="container-md">
<h2>Gatsby File Upload Form using Getform.io</h2>
<form
acceptCharset="UTF-8"
method="POST"
enctype="multipart/form-data"
id="gatsbyForm"
onSubmit={handleSubmit}
>
<div className="form-group mb-2">
<label for="exampleInputEmail1">Email address</label>
<input
type="email"
className="form-control"
placeholder="Enter your email"
required
name="email"
value={query.email}
onChange={handleChange()}
/>
</div>
<div className="form-group mb-2">
<label for="exampleInputName">Name</label>
<input
type="text"
className="form-control"
placeholder="Enter your name"
required
name="name"
value={query.name}
onChange={handleChange()}
/>
</div>
<hr/>
<div className="form-group mt-3">
<label className="mr-2">Upload your Resume:</label>
<input name="file" type="file" onChange={handleFileChange()}/>
</div>
<hr/>
{formStatus ? (
<div className="text-success mb-2">
Your message has been sent.
</div>
) : (
""
)}
<button type="submit" className="btn btn-primary">Submit</button>
</form>
</div>
);
}
export default Form
注意:値をYOUR-FORM-ENDPOINT
const getformount formountのアンサーは、ステップ2でコピーしたエンドポイントで終了します.multipart/form-data
送信する前にオブジェクトを指定します.npm install react-bootstrap bootstrap
糸でyarn add react-bootstrap bootstrap
を使用して私たちの連絡先ページにインポートimport 'bootstrap/dist/css/bootstrap.min.css';
プロジェクトライブを展開し、フォームフォームの送信を開始する準備が整いました.ステップ4 : vercelで展開する
を使用すると、あなたのVercel for Git , それがgitリポジトリにプッシュされていることを確認します.
選択したgitプロバイダを使用してプロジェクトを
Localhostか生産環境から受け取ったフォーム提出物は、SmartViewまたはTable ViewオプションのいずれかでGetFormエンドポイントダッシュボードリストに表示されます.
一旦展開されると、あなたは次のようなあなたのChiアプリのライブを見るためにURLを得ますhttps://gatsby-vercel-getform.vercel.app/
ボーナス:getform自動化
GetFormは、カスタムリダイレクト、Google Recaptchaの統合、カスタム電子メールテンプレート、autoresponseメールとZapierの統合のセットアップの自動化アクションをすることができます.畝
たとえば、カスタムメールテンプレートのアクションを使用すると、メール本文の独自のHTMLを使用することができますし、名前と電子メールの件名からは、カスタマイズしてください.
注: GetForm RunおよびGentooのgetFormオートメーションアクションに関する詳細な情報を見つけることができますfeatures getformのセクション.入出力
Reference
この問題について(Gatsbyを作成し、配置します.GetFormとVercelを使用したJSフォーム), 我々は、より多くの情報をここで見つけました https://dev.to/mertcanyucel/create-and-deploy-gatsby-js-forms-using-getform-with-vercel-fecテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol