【php】GETパラメーター使って複数あるボタンのどれが押されたか判定する方法

複数あるボタンうち「どのボタンが押されたか?」をGETパラメーターで判定し、それぞれの処理を実行させる方法を書きます。

formタグやsubmitは使わないシンプルで分かりやすい方法です。

はじめに

phpは基本的にページが読み込まれるタイミングでしか実行できません。

なので、ユーザーがボタンを押したタイミングで処理を実行させるにはphp側に「Aボタンが押された状態にして!」と伝えてあげる必要があります。

今回はその伝える方法をGETパラメーターで実装しています。

※JavaScriptやphpのライブラリを使用することで再読み込みせずに処理を実行させることも出来ますが、今回はphpだけで実現する方法になります。

サンプルソースと説明

HTMLとphpのソースについて説明します。

HTML

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>サンプルソース</title>
</head>
<body>

<p><a href="test.php?btn_id=A">Aボタン</a></p>
<p><a href="test.php?btn_id=B">Bボタン</a></p>
<p><a href="test.php?btn_id=C">Cボタン</a></p>

</body>
</html>

aタグのhrefにパラメーターをセットします。

Aボタンには「btn_id=A」、Bボタンには「 btn_id=B」、Cボタンには「 btn_id=C」と、ボタンごとに違ったパラメーターの値をセットします。

php

if( isset($_GET["btn_id"]) ){
	switch( $_GET["btn_id"] ){
		case 'A':
			/* Aボタンが押されたとき処理を書く */
			echo '押されたのは' . $_GET["btn_id"] . 'ボタンです。';
			break;
		case 'B':
			/* ここにBボタンが押されたときに実行する処理を書く */
			echo '押されたのは' . $_GET["btn_id"] . 'ボタンです。';
			break;
		case 'C':
			/* ここにCボタンが押されたときに実行する処理を書く */
			echo '押されたのは' . $_GET["btn_id"] . 'ボタンです。';
			break;
	}
}

GETパラメーター名「btn_id 」 が存在するならば、処理が実行されるように書いています。

値が存在する場合は処理進めて、次は GETパラメーター名「btn_id 」の値が「A」「B」「C」のどれか?を判定してそれぞれの処理を実行させます。

動作確認ページとソース

動作確認用のページと、ソースを用意しました。

動作確認用ページ

*****確認用URL*****

ソース

<?php
if( isset($_GET["btn_id"]) ){
	switch( $_GET["btn_id"] ){
		case 'A':
			/* Aボタンが押されたとき処理を書く */
			echo '押されたのは' . $_GET["btn_id"] . 'ボタンです。';
			break;
		case 'B':
			/* ここにBボタンが押されたときに実行する処理を書く */
			echo '押されたのは' . $_GET["btn_id"] . 'ボタンです。';
			break;
		case 'C':
			/* ここにCボタンが押されたときに実行する処理を書く */
			echo '押されたのは' . $_GET["btn_id"] . 'ボタンです。';
			break;
	}
}
?>

<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>サンプルソース</title>
</head>
<body>

<p><a href="test.php?btn_id=A">Aボタン</a></p>
<p><a href="test.php?btn_id=B">Bボタン</a></p>
<p><a href="test.php?btn_id=C">Cボタン</a></p>

</body>
</html>

ファイル名を「test.php」にしてこのソースを張り付ければ動作すると思います。

コメント