LoginSignup
0
1

More than 1 year has passed since last update.

【JavaScript】フォームのinputタグでURLパラメータを取得する方法

Last updated at Posted at 2023-02-15

先日、フォームのinputタグでURLパラメータを取得する実装を行いました。
備忘録のためにメモ残しておきます。

背景

  • 広告の流入元を知るため、以下3つのパラメータを取得したい
    • utm_source
    • utm_medium
    • utm_campaign
  • 取得したパラメータをフォームで送信したい

URLパラメータとは

プログラムに情報を送信するため、URLの末尾についた文字列

https://hogehoge.co.jp?○○○=×××

パラメータの種類(?)

utm_source:どこからの流入なのかを分類
utm_medium:どのメディアからの流入なのかを分類
utm_campaign:メルマガなど広告を条件ごとに絞って分析する
utm_term:有料検索での「キーワード」を分析
utm_content:一つの広告に同一のURLを複数入れている場合、どの「コンテンツ」から流入したかを分類

実装内容

大まかな流れ

  1. HTMLでinputタグを作成
  2. JavaScriptでパラメータを取得
  3. 取得したパラメータをinputタグのvalueに入れる
  4. フォーム送信
例のURL
https://hogehoge.co.jp?utm_source=hoge&utm_medium=fuga&utm_campaign=piyo

HTMLでinputタグを作成

index.html
<input type="hidden" name="utm_source" value=""></input>
<input type="hidden" name="utm_medium" value=""></input>
<input type="hidden" name="utm_campaign" value=""></input>

ユーザーに入力してほしいものではないのでtype="hidden"にして見えなくしています。

JavaScriptでパラメータを取得&取得したパラメータをinputタグのvalueに入れる

form.js
// パラメータを取得
const params = new URLSearchParams(location.search);
// 取得したそれぞれのパラメータをそれぞれのinputタグのvalueに入れる
document.getElementsByName("utm_source")[0].value = params.get("utm_source");
document.getElementsByName("utm_medium")[0].value = params.get("utm_medium");
document.getElementsByName("utm_campaign")[0].value = params.get("utm_campaign");

下記のような形で、それぞれのパラメータがそれぞれのinputタグのvalueに入る

<input type="hidden" name="utm_source" value="hoge"></input>
<input type="hidden" name="utm_medium" value="fuga"></input>
<input type="hidden" name="utm_campaign" value="piyo"></input>

参考

すごく参考になりました!ありがとうございます

0
1
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
1