PHPでクリックされたボタンに応じて別の処理を実行する方法を現役エンジニアが解説【初心者向け】
初心者向けにPHPでクリックされたボタンに応じて別の処理を実行する方法について現役エンジニアが解説しています。ボタン要素にはsubmitやreset、buttonタグなどがあります。今回はフォームのsubmitボタンのname属性を変えて、$_POST変数の違いを確認して処理を分けます。
テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日 調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名 調査手法:インターネット調査
監修してくれたメンター
nakamoto
今回は、PHPでクリックされたボタンに応じて別の処理を実行する方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。
PHPでクリックされたボタンに応じて別の処理を実装することで、ユーザーが押したボタンの種類によって、処理を変えることが可能です。
実務でも、ユーザーの操作に応じて、処理を変更しながら表示するため、ぜひ学習してみてください。
目次
そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。
今回は、PHPに関する内容だね!
どういう内容でしょうか?
PHPでクリックされたボタンに応じて、別の処理を実行する方法について詳しく説明していくね!
お願いします!
buttonとは
Webサイトなどでよく見かけるボタンを作成するためには、HTMLの<button>タグを使用します。
<button>タグは、type属性を指定することで主に3種類の利用方法があります。
- type=”submit”
- type=”reset”
- type=”button”
type=”submit”
クリックするとデータを送信します。
type=”reset”
クリックするとフォームの内容などをリセットします。
type=”button”
プログラムと組み合わせて様々な処理に利用します。
実際に書いてみよう!CSSでボタンを作る方法 も参考にしてみてください。
クリックされたボタンに応じて別の処理を実行する方法
ここでは、クリックされたボタンに応じて別の処理を実行する方法を解説します。
PHPサンプルコード
<?php
$result = "";
if (isset($_POST['add'])) {
$result = "登録しました";
}
echo $result;
?>
HTMLサンプルコード
<form action="index.php" method="post">
<button type="submit" name="add">登録</button>
</form>
解説
PHP側のコードから解説します。
<?phpでは、PHPプログラムが開始することを意味します。
$result = “”;では、変数$resultに空文字を代入して初期化しています。
初期化することで、以前利用していた$resultの中に入っている別の値を再利用しないように、値を空にしておきます。
if (isset($_POST[‘add’])) {では、if文を利用した条件分岐で、「もし、登録ボタンを押された時」という条件を指定しています。
isset()関数は、()内に指定した値が入っている場合にtrueを返します。
()内に、$_POST[‘add’]が指定されていることでHTML側でaddというname属性のボタンが押された場合、if文の処理も実行されます。
$result = “登録しました”;では、「もし、登録ボタンを押された時」変数$resultに「登録しました」を代入しています。
}では、if文を終了しています。
echo $result;では、変数$resultを表示しています。
?>では、PHPを終了しています。
HTML側では次のような処理を行っています。
<form action=”index.php” method=”post”>では、index.phpというPHPファイルに、フォームを送信した際の内容をPOSTという形式で送信することを意味します。
<button type=”submit” name=”add”>登録</button>では、登録ボタンを用意して、クリックしたらsubmit属性を用いて送信します。
送信する際に、PHP側と連携するため、name属性でaddという属性値を指定しています。
</form>ではフォームの実装を終了します。
[PR] PHPを学んで未経験からWebエンジニアを目指す方法とは
実際に書いてみよう
それでは、実際に<button>タグにname属性を設定し、PHPスクリプトでコントロールする例を見ていきましょう。
サンプルコードindex.php
<?php
$result = "";
if (isset($_POST['add'])) {
$result = "登録しました";
}
elseif (isset($_POST['update'])) {
$result = "更新しました";
}
else {
$result = "削除しました";
}
echo $result;
?>
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>PHPでクリックされたボタンに応じて別の処理を実行する方法</title>
</head>
<body>
<form action="index.php" method="post">
<button type="submit" name="add">登録</button>
<button type="submit" name="update">更新</button>
<button type="submit" name="remove">削除</button>
</form>
</body>
</html>
実行結果
解説
<?phpでは、PHPプログラムが開始することを意味します。
$result = “”;では、変数$resultに空文字を代入して初期化しています。
初期化することで、以前利用していた$resultの中に入っている別の値を再利用しないように、値を空にしておきます。
if (isset($_POST[‘add’])) {では、if文を利用した条件分岐で、「もし、登録ボタンを押された時」という条件を指定しています。
isset()関数は、()内に指定した値が入っている場合にtrueを返します。
()内に、$_POST[‘add’]が指定されていることでHTML側でaddというname属性のボタンが押された場合、if文の処理も実行されます。
$result = “登録しました”;では、「もし、登録ボタンを押された時」変数$resultに「登録しました」を代入しています。
}では、if (isset($_POST[‘add’])){部分のif文を終了しています。
elseif (isset($_POST[‘update’])) {では、if (isset($_POST[‘add’]))のif文に合致しなかった時に、(isset($_POST[‘update’])という条件に合致するかを条件分岐しています。
(isset($_POST[‘update’])では、「もし、更新ボタンを押された時」という条件を指定しています。
()内に、$_POST[‘update’]が指定されていることで、HTML側でupdateというname属性のボタンが押された場合に実行されます。
$result = “更新しました”;では、「もし、更新ボタンを押された時」変数$resultに「更新しました」を代入しています。
}では、elseif (isset($_POST[‘update’])) {の処理を終了しています。
else {では、if (isset($_POST[‘add’]))と、elseif (isset($_POST[‘update’])) {のどちらにも該当しなかった場合の条件を指定しています。
今回で言えば、削除ボタンが押されたときの処理が合致します。
$result = “削除しました”;では、「もし、削除ボタンを押された時」変数$resultに「削除しました」を代入しています。
}では、else {の処理を終了しています。
echo $result;では、変数$resultを表示しています。
?>では、PHPを終了しています。
<!DOCTYPE html>では、HTMLの実装を開始することを意味しています。
<html lang=”ja”>では、日本語のコンテンツを実装することを意味しています。
<head>では、head要素を開始することを意味します。
<meta charset=”UTF-8″>では、UTF-8とうい文字コードを利用することを意味しています。
<title>PHPでクリックされたボタンに応じて別の処理を実行する方法</title>では、タイトルに「PHPでクリックされたボタンに応じて別の処理を実行する方法」を利用することを意味しています。
</head>では、head要素を終了しています。
<body>では、body要素を開始しています。
<form action=”index.php” method=”post”>ではindex.phpというPHPファイルに、フォームを送信した際の内容をPOSTという形式で送信することを意味します。
<button type=”submit” name=”add”>登録</button>では、登録ボタンを用意して、登録ボタンをクリックしたらsubmit属性を用いて送信します。
送信する際に、PHP側と連携するため、name属性でaddという属性値を指定しています。
<button type=”submit” name=”update”>更新</button>では、更新ボタンを用意して、更新ボタンをクリックしたらsubmit属性を用いて送信します。
送信する際に、PHP側と連携するため、name属性でupdateという属性値を指定しています。
<button type=”submit” name=”remove”>削除</button>では、削除ボタンを用意して、削除ボタンをクリックしたらsubmit属性を用いて送信します。
送信する際に、PHP側と連携するため、name属性でremoveという属性値を指定しています。
</form>では、フォームの実装を終了します。
</body>では、body要素の実装を終了しています。
</html>では、HTMLの実装を終了しています。
今回は、登録ボタンを押すと「登録しました」、更新ボタンを押すと「更新しました」、削除ボタンを押すと「削除しました」と表示されます。
まとめ
今回はHTMLのbuttonを利用して、クリックされたボタンに応じて、PHP側で処理を対応させました。
if文を利用することで、PHP側で処理を条件分岐できました。
PHPで条件分岐(if文)を使う方法を参考にしてみてください。
isset()関数を利用することで、指定した値が存在するかを確認できました。
PHPのisset関数で変数が存在するか確認する方法 も参考にしてみてください。
HTML側からPOSTメソッドで送信された値は、name属性で指定された値を利用して、PHP側のプログラムと連動していました。
内容が分かりやすくて良かったです!
ゆかりちゃんも分からないことがあったら質問してね!
分かりました。ありがとうございます!
PHPを学習中の方へ
これで解説は終了です、お疲れさまでした。
- つまずかず「効率的に」学びたい
- 副業や転職後の「現場で使える」知識やスキルを身につけたい
プログラミングを学習していて、このように思ったことはありませんか?
テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。
合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。
まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。
時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!