PHP関数をクリックで呼び出す方法 (日本語)
HTMLフォームでボタンをクリックすると、PHP関数を呼び出す方法
HTMLフォームの作成
まず、HTMLファイルでフォームを作成します。ボタンのonclick
属性にJavaScriptの関数名を指定します。
<!DOCTYPE html>
<html>
<head>
<title>PHP Function Call</title>
</head>
<body>
<form action="" method="post">
<input type="button" value="Call PHP Function" onclick="callPHPFunction()">
</form>
</body>
</html>
JavaScript関数
HTMLファイル内のJavaScript関数で、PHPファイルのURLを指定してAJAXリクエストを送信します。
function callPHPFunction() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "your_php_file.php", true);
xhr.send();
}
PHPファイル
PHPファイルでは、リクエストを受け取って関数を呼び出し、必要に応じてレスポンスを返します。
<?php
function myPHPFunction() {
// 関数の処理
echo "PHP function called!";
}
if (isset($_GET["call_function"])) {
myPHPFunction();
}
?>
動作原理
- クリックイベント
ボタンがクリックされると、JavaScriptのcallPHPFunction()
関数が呼び出されます。 - AJAXリクエスト
JavaScript関数は、PHPファイルのURLにGETリクエストを送信します。 - PHP処理
PHPファイルはリクエストを受け取り、isset($_GET["call_function"])
でリクエストが来たかどうかをチェックします。 - 関数呼び出し
リクエストが来ていれば、myPHPFunction()
関数を呼び出します。 - レスポンス
PHP関数は必要に応じてレスポンスを返します。
注意
- セキュリティの観点から、ユーザー入力は適切にサニタイズしてください。
- AJAXリクエストは非同期なので、PHP関数の処理結果を直接HTMLページに表示することはできません。必要に応じて、JavaScriptでレスポンスを処理するか、PHPファイルから別のページにリダイレクトします。
日本語でのコード解説
コード例 1: HTMLフォームとJavaScript関数
<!DOCTYPE html>
<html>
<head>
<title>PHP Function Call</title>
</head>
<body>
<form action="" method="post">
<input type="button" value="Call PHP Function" onclick="callPHPFunction()">
</form>
<script>
function callPHPFunction() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "your_php_file.php", true);
xhr.send();
}
</script>
</body>
</html>
- JavaScript関数
XMLHttpRequest
オブジェクトを使用して、PHPファイルにGETリクエストを送信しています。 - HTMLフォーム
onclick
属性でJavaScript関数callPHPFunction()
を指定しています。
コード例 2: PHPファイル
<?php
function myPHPFunction() {
// 関数の処理
echo "PHP function called!";
}
if (isset($_GET["call_function"])) {
myPHPFunction();
}
?>
- 条件分岐
if
文でリクエストが来たかどうかをチェックし、来た場合は関数を呼び出しています。 - PHP関数
myPHPFunction()
は呼び出される関数です。
フォーム送信による方法
- PHPファイル
フォームのデータを受け取り、関数呼び出しを行います。 - ボタン
type
属性をsubmit
に設定します。 - HTMLフォーム
action
属性にPHPファイルのURLを指定し、method
属性をPOST
に設定します。
<form action="your_php_file.php" method="post">
<input type="submit" value="Call PHP Function">
</form>
<?php
function myPHPFunction() {
// 関数の処理
}
if (isset($_POST["submit"])) {
myPHPFunction();
}
?>
JavaScriptのlocation.hrefによる方法
- JavaScript関数
location.href
プロパティを使用して、PHPファイルのURLにリダイレクトします。
<input type="button" value="Call PHP Function" onclick="callPHPFunction()">
function callPHPFunction() {
location.href = "your_php_file.php";
}
Ajaxによる非同期呼び出し
<input type="button" value="Call PHP Function" onclick="callPHPFunction()">
function callPHPFunction() {
var xhr = new XMLHttpRequest();
xhr.open("GET", "your_php_file.php", true);
xhr.send();
}
<?php
function myPHPFunction() {
// 関数の処理
echo "PHP function called!";
}
if (isset($_GET["call_function"])) {
myPHPFunction();
}
?>
選択のポイント
- Ajax
非同期処理なので、ページの更新なしにPHP関数を呼び出すことができます。 - リダイレクト
新しいページに遷移するため、ページの更新が必要になります。 - フォーム送信
シンプルで使いやすく、フォームのデータも一緒に送信できます。
php html forms