速報

X.Orgのクライアントライブラリーで17件を修正!Linux端末と画像処理の利用範囲を点検

CATEGORY

【JavaScript】PHPにlocation.hashの値を渡す方法

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】PHPにlocation.hashの値を渡す方法

目次

本記事では、JavaScriptのlocation.hashで取得した値をPHPに渡す方法をご紹介しています。

location.hashの値をPHPに渡して処理したいな。良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

JavaScriptからPHPにlocation.hashの値を渡すには

PHPには、デフォルトでURLのハッシュ値を取得するための関数や変数は存在しません。そのためPHPでURLのハッシュ値を使った処理を作成しようとする場合、フロントエンド(ここではJavaScript)で取得したハッシュ値をどうにかしてPHPに渡す必要が出てきます。

JavaScriptからPHPにデータを渡す方法はいくつかあると思いますが、ここでは最も扱いやすい非同期通信を使って、JavaScriptのlocation.hashで取得した値をPHPに渡して例をご紹介します。

JavaScriptとPHPはファイルを分け、ファイル構造は下記の通りとします。

root/
 ├ index.html
 └ post.php

index.htmlにJavaScriptを、post.phpにPHPの下記処理を記述します。

JavaScript

<script>
const hash = location.hash;

fetch("post.php", {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify(hash)
})
.then((response) => response.json())
.then((result) => {
    console.log({result});
});
</script>

PHP

<?php

// JSONデータ取得
$json = file_get_contents('php://input');

// JSONを連想配列に変換
$data = json_decode($json, true);

// ここで何かしらの処理
$result = $data . '-hoge';

// JSONに変換して結果を返す
echo json_encode($result);

実行結果は下記の通りです。

実行結果

#test-hoge

JavaScriptで取得したlocation.hashの値をPHPに渡して何らかの処理(ここでは文字列を結合する処理)を実行することができましたね。

参考:https://developer.mozilla.org/ja/docs/Web/API/Fetch_API/Using_Fetch

最後に

JavaScriptからPHPに値を渡したい場合は非同期通信が便利です。JavaScriptの処理中にPHPにデータを渡す→処理結果を受け取る→JavaScriptの処理に戻るという流れがスムーズにできます。JavaScriptとPHPを使って処理を作成したい場合は、ぜひ試してみてくださいね!

以上、JavaScriptでPHPにlocation.hashの値を渡す方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、これまでに100以上のWordPressサイトの構築・保守を担当してきました。Webサイト制作に加え、アプリ開発やAIを活用した開発にも取り組み、近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
WordPress / PHP / JavaScript / アプリ開発 / Webサイトの運用・セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

スポンサーリンク

関連する記事

おすすめの書籍