サイトレシピ(8) 問い合わせフォームのページ

July 01, 2020

linuxgatsby

Netlify Formsのお問い合わせフォーム作成

この方法は、以下のページを参考にしました。というか、まんまコピーです。

https://qiita.com/hiropy0123/items/2e8d14ea66b78ab64847
Netlify FormsをつかってGatsbyにお問い合わせフォームを追加するまで

app/src/pages/contuct.js
import React from "react"
import { graphql } from "gatsby"

import Layout from "../components/layout"
import SEO from "../components/seo"

const ContuctPage = ({ data, location }) => {
  const siteTitle = data.site.siteMetadata.title
  const PageStyles = {
    marginLeft: 40,
    width: 400,
  }

  return (
    <Layout location={location} title={siteTitle}>
      <div style={PageStyles}>
        <SEO title="Contuct me" />
        <h1>Contuct me</h1>
        <h3>お問い合わせフォーム</h3>
        <form
          name="contact" 
          method="POST" 
          data-netlify="true"
          data-netlify-honeypot="bot-field"
        >
          <input type="hidden" name="form-name" value="contact" />
          <input type="hidden" name="bot-field" />

          <div className="form-group">
            <input size="40"
                   type="text"
                   className="form-control"
                   id="name" name="name"
                   placeholder="お名前"
                   maxlength="30"
                   minlength="2"
                   required
                   autocomplete="name" />
          </div>
          <p/>
          <div className="form-group">
            <input size="40"
                   type="email"
                   className="form-control"
                   id="email"
                   name="email"
                   placeholder="メールアドレス"
                   pattern="^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\.[a-zA-Z0-9-]+)*$"
                   required
                   autocomplete="email" />
          </div>
          <p/>
          <div className="form-group">
            <textarea cols="41"
                      className="form-control"
                      id="contact"
                      name="content"
                      rows="8"
                      placeholder="お問い合わせ内容"
                      required/>
          </div>
          <p/>
          <div className="form-group" align="center">
            <button type="submit">    送信    </button>
          </div>
        </form>
      </div>
    </Layout>
  )
}

export default ContuctPage

export const pageQuery = graphql`
  query {
    site {
      siteMetadata {
        title
      }
    }
  }
`

Google Form でお問い合わせフォーム作成

別の方法として、 Google Form を利用した問い合わせフォームを紹介します。

Google Formのページ(https://docs.google.com/forms/u/0/)で、「新しいフォームを作成」します。

新しいフォームを作成

フォームを作成したら、「送信」ボタンをクリックし、送信方法として「<>」を選択します。

送信

「HTML を埋め込む」に表示されたhtmlをコピーし、ページに貼り付ければ、お問い合わせフォームの完成です。

お問い合わせページ作成

app/src/pages/contuct.js
import React from "react"
import { graphql } from "gatsby"

import Layout from "../components/layout"
import SEO from "../components/seo"

const ContuctPage = ({ data, location }) => {
  const siteTitle = data.site.siteMetadata.title

  return (
    <Layout location={location} title={siteTitle}>
      <SEO title="Contuct me" />
      <h1>Contuct me</h1>
      
      ここにGoogle Formの「HTML を埋め込む」に表示されたhtmlを貼り付ける。
      
    </Layout>
  )
}

export default ContuctPage

export const pageQuery = graphql`
  query {
    site {
      siteMetadata {
        title
      }
    }
  }
`

このお問い合わせページは、
http://自分のサイト/contuct
でアクセスできます。


Written by questions6768 who lives in Uji, Kyoto.