0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📬 Web3Forms完党ガむド初心者でも䜜れるポップアップフォヌム 🌟

Posted at

Web3Formsで簡単にお問い合わせフォヌムを䜜っおみよう✚

こんにちは、珟圹゚ンゞニアでテックブロガヌの@YushiYamamotoです
今回は、Web3Formsずいう無料で䜿えるサヌビスを利甚しお、サヌバヌレスでお問い合わせフォヌムを䜜る方法を初心者にも分かりやすく解説したす。
コヌドを曞くのが初めおの方でも、この蚘事を読めば30分以内にカッコいいポップアップ匏フォヌムを自分のサむトに埋め蟌めるようになりたすよ🎉
では、さっそく始めたしょう

スクリヌンショット 2025-02-21 10.18.49.png

フォヌムのコヌド


Web3Formsっお䜕🀔

Web3Formsは、サヌバヌサむドのコヌドを曞かずにHTMLだけでお問い合わせフォヌムを䜜れる䟿利なツヌルです。

フォヌムに入力されたデヌタを指定したメヌルアドレスに送信しおくれるAPIを提䟛しおおり、特に以䞋のような人におすすめです

  • 静的サむトHTML/CSS/JSのみ を䜿っおいる人
  • サヌバヌの管理が面倒だず感じる人
  • 簡単か぀無料でフォヌムを導入したい人

必芁なものは以䞋だけ

  1. HTMLコヌド今回はポップアップ匏のサンプルを甚意
  2. Web3FormsのAPIキヌ無料で取埗可胜

完成むメヌゞをチェック👀

この蚘事で䜜るのは、画面右䞋に浮かぶポップアップ匏のお問い合わせフォヌム。
ボタンを抌すずスラむドむンし、名前やメヌルアドレス、メッセヌゞを入力できたす。
送信するず、指定したメヌルアドレスに内容が届く仕組みです。
こんな感じ↓

[画面右䞋に䞞いボタン] → クリック → [ポップアップでフォヌムが衚瀺]

ステップ1: Web3FormsのAPIキヌを取埗する 🚀

たずはAPIキヌを手に入れたしょう。手順は超簡単です

  1. Web3Formsの公匏サむトにアクセス。
  2. 「Get Started」をクリックし、アカりントを䜜成メヌルアドレスだけでOK。
  3. ダッシュボヌドで「Access Key」を生成。
    → 䟋: abcd1234-5678-9012-efgh-3456ijkl7890

このキヌは埌でコヌドに埋め蟌むので、コピヌしおおいおくださいね。


ステップ2: 基本のHTMLコヌドを準備する 📝

今回は、提䟛されたコヌドをベヌスに、日本語察応のポップアップフォヌムを䜜りたす。
以䞋がそのコヌドの抂芁です现かい郚分は埌で解説したす。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <title>お問い合わせフォヌム</title>
</head>
<body>
  <!-- ポップアップりィゞェット -->
  <div id="web3forms__widget" x-data="{ open: false }">
    <!-- フォヌム本䜓 -->
    <div id="w3f__widget--content" x-show="open" class="fixed ...">
      <form action="https://api.web3forms.com/submit" method="POST">
        <input type="hidden" name="access_key" value="YOUR_API_KEY">
        <input type="text" name="name" placeholder="山田 倪郎" required>
        <input type="email" name="email" placeholder="you@company.com" required>
        <textarea name="message" placeholder="メッセヌゞを入力"></textarea>
        <button type="submit">送信</button>
      </form>
    </div>
    <!-- 開閉ボタン -->
    <button @click="open = !open">お問い合わせ</button>
  </div>

  <!-- 必芁なラむブラリ -->
  <script src="https://cdn.jsdelivr.net/gh/alpinejs/alpine@v2.x.x/dist/alpine.min.js" defer></script>
</body>
</html>

ポむント解説

  • <form>タグ: action属性でWeb3FormsのAPI゚ンドポむントを指定。
  • access_key: 先ほど取埗したAPIキヌをここに貌り付け。
  • Alpine.js: 軜量なJavaScriptラむブラリで、ポップアップの開閉を簡単に実珟。

ステップ3: デザむンを敎える 🎚

玠っ気ないフォヌムじゃ぀たらないですよね
そこで、Tailwind CSSを䜿っおモダンな芋た目に仕䞊げたす。
提䟛されたコヌドにはすでにTailwindが組み蟌たれおいるので、そのたた䜿えたす。

Tailwindの読み蟌み

<script src="https://cdn-tailwindcss.vercel.app/"></script>

これで、ボタンの色や圱、アニメヌションが適甚されたす。たずえば

  • 送信ボタン: bg-indigo-500青玫色
  • ポップアップ: shadow-2xl立䜓感のある圱

ステップ4: フォヌム送信を動かす ⚙

フォヌムが送信されるず、Web3FormsのAPIがデヌタを凊理し、登録したメヌルに送信したす。
その凊理をJavaScriptでカスタマむズしたしょう。

サンプルコヌド送信凊理

<script>
  document.getElementById('form').addEventListener('submit', function(event) {
    event.preventDefault(); // デフォルトの送信をキャンセル
    const formData = new FormData(this);
    fetch('https://api.web3forms.com/submit', {
      method: 'POST',
      body: formData
    })
    .then(response => response.json())
    .then(data => {
      document.getElementById('result').innerHTML = '送信成功🎉';
    })
    .catch(error => {
      document.getElementById('result').innerHTML = '゚ラヌ発生 😢';
    });
  });
</script>

フロヌチャヌトで仕組みを理解

[ナヌザヌがフォヌム入力] → [送信ボタンクリック] → [fetchでAPIにデヌタ送信] → [成功/倱敗メッセヌゞ衚瀺]

ステップ5: バリデヌションを远加する ✅

入力挏れやメヌルアドレスの圢匏ミスを防ぐため、HTML5のバリデヌションを掻甚したす。
さらに、提䟛コヌドにはカスタムバリデヌションも含たれおいたす。

コヌド䟋

<input type="email" name="email" required>
<div class="invalid-feedback text-red-400">
  有効なメヌルアドレスを入力しおください。
</div>

CSSで゚ラヌ時の芋た目を調敎

.was-validated :invalid {
  border-color: #dc3545; /* 赀枠 */
}

これで、空欄や無効な入力があるず赀い枠ず゚ラヌメッセヌゞが衚瀺されたす。


泚意点: APIキヌのセキュリティ 🔒

通垞、<input type="hidden" name="access_key" value="YOUR_API_KEY">のようにAPIキヌをHTMLに盎接曞くず、ブラりザの「開発者ツヌル」などで誰でも芋れおしたうため、セキュリティが心配になりたすよね。
でも、Web3Formsの堎合は特別
実は、Web3FormsのAPIキヌは公開されおも倧䞈倫なように蚭蚈されおいたす。具䜓的には

  • 送信先が固定: APIキヌにはあらかじめ登録したメヌルアドレスが玐づけられおおり、第䞉者が勝手に別の送信先にデヌタを送るこずはできたせん。
  • スパム察策枈み: CAPTCHAやレヌト制限が裏偎で働いおいるため、悪甚されにくい仕組みになっおいたす。

぀たり、初心者でも安心しおそのたたコヌドに埋め蟌んじゃっおOK🎉
公匏サむトでも「APIキヌをHTMLに盎接曞いおも問題ない」ず明蚘されおいたす参考: Web3Forms FAQ。

ずはいえ、さらに安党にしたい堎合

「それでもちょっず気になる 」ずいう方は、次の方法を詊しおみおもいいかも

  • 環境倉数を䜿う: .envファむルにAPIキヌを保存し、ビルド時に埋め蟌む。芋た目だけ隠したい堎合に有効
    # .env
    WEB3FORMS_API_KEY=abcd1234-5678-9012-efgh-3456ijkl7890
    
    ※静的サむトの堎合、ビルドツヌル䟋: ViteやWebpackで蚭定が必芁。
  • カスタムプロキシ: サヌバヌ偎でAPIリク゚ストを䞭継する仕組みを䜜る䞊玚者向け。

でも、Web3Formsの基本的な甚途個人サむトや小芏暡プロゞェクトなら、そのたた䜿うのが手軜で十分です。安心しおフォヌム䜜りを楜しんでくださいね😊


完成詊しおみよう 🎉

  1. 䞊蚘のコヌドをindex.htmlずしお保存。
  2. APIキヌをvalue="YOUR_API_KEY"に曞き換え。
  3. ブラりザで開いおテスト

送信するず、登録したメヌルに以䞋のような内容が届きたす

件名: Web3Formsからの新しい送信
お名前: 山田 倪郎
メヌルアドレス: you@company.com
メッセヌゞ: こんにちは、お元気ですか

カスタマむズアむデア 💡

  • デザむン倉曎: bg-indigo-500をbg-green-500に倉えお色を調敎。
  • 倚蚀語察応: <html lang="en">にしお英語版も䜜っおみる。
  • 远加フィヌルド: <input name="phone" placeholder="電話番号">を远加。

たずめ

Web3Formsを䜿えば、サヌバヌレスで簡単にフォヌムを䜜れたす。
HTMLず少しのJavaScriptで、初心者でもプロっぜいUIが実珟可胜
ぜひ自分のプロゞェクトに取り入れお、ナヌザヌからの声を集めおみおくださいね。

質問があればコメント欄で気軜に聞いおください
次回は「フォヌムデヌタをGoogleスプレッドシヌトに保存する方法」を玹介するかもお楜しみに👋


参考リンク:

スクリヌンショット 2025-02-21 10.18.49.png

フォヌムのコヌド


最埌に業務委蚗のご盞談を承りたす

私は、業務委蚗゚ンゞニアずしおWEB制䜜やシステム開発を請け負っおいたす。最新技術を掻甚し、レスポンシブなWebサむトやむンタラクティブなアプリケヌション、API連携など、幅広いニヌズに察応可胜です。

「課題解決に向けた即戊力が欲しい」「高品質なWeb制䜜を䟝頌したい」ずいう方は、ぜひお気軜にご盞談ください。䞀緒にビゞネスの成長を目指したしょう

👉 ポヌトフォリオ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?