JavaScript:クリックしたらphpファイルを読み込むサンプルコード(XMLHttpRequest)
ボタンをクリックしたらページ内にphpファイルを読み込んで表示させたい場合があります。そのサンプルコードをつくりました。
JavaScriptでHTMLを記述 or ページ内にphpを読み込んで表示
ボタンクリックなど、ユーザーの動作に応じてサイト内の表示を変化させる方法としては下記2つの方法があります。
- JavaScriptでページ内のHTMLを書き換える
- ページ内にphpファイルを読み込む
1つめのJavaScriptを使ってhtmlを書き換える方法は、書き換える範囲が少ない場合や、サーバーのデータベースからデータを読み込む必要が無い場合などに使います。サーバーにアクセスせずにユーザーのPCのみで書き換えが完結するため、表示の書き換えスピードが速く、サーバー負荷がかからないのが利点です。
2つめのphpファイルを読み込む方法は、書き換える範囲が広い場合や、サーバーのデータベースからデータを読み込む必要がある場合などに使います。サーバーの応答のタイムラグがありますが、phpファイルでテンプレートのように管理したり、データベースを使って柔軟にデータを読み込めるのが利点です。
補足:phpファイルの読み込みはJavaScriptを使う
上記2つ目のphpファイルを読み込む方法であってもJavaScriptを全く使わないというわけではなく、phpファイルの読み込み処理はJavaScriptで行います。
サンプルコード
phpファイル
読み込んで表示したい内容を記述したphpファイルを用意します。phpファイルはサーバーのテンプレートファイルの付近に置きます。
下記は例です。
<?php
echo '<p>この文章は、PHPファイルを読込んで表示したサンプルです。</p>';
echo '<ul>';
echo '<li>リスト形式のテキストサンプル</li>';
echo '<li>リスト形式のテキストサンプル</li>';
echo '<li>リスト形式のテキストサンプル</li>';
echo '</ul>';
html
次にページのhtmlに加工します。phpファイルを読み込む位置に要素を用意し、onclick属性でクリックしたらphpファイルを読み込むJavaScriptを呼び出すようにします。
<p id="sample-box" onclick="sample_include_php('/wp-content/themes/lucytoruby1/files/template/sample/sample_include.php')">[ここをクリックでphpを読込]</p>
JavaScript
最後にphpファイルを読み込むJavaScriptを用意します。
引数(pathname)で読込むファイルのパスを指定していますが、こうすることによって他のphpファイルの読み込みでもこの関数を共通して使うことができます。
function sample_include_php(pathname) {
var url = window.location.origin + pathname; //読み込むphpファイルのURL
var xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.send();
xhr.onreadystatechange = function () {
if (xhr.readyState === 4 && xhr.status === 200) {
var element = document.getElementById('sample-box');
element.outerHTML = xhr.responseText;
}
};
}
動作サンプル
下記はphpファイルの読み込みサンプルです。クリックするとphpファイルを読み込みます。
[ここをクリックでphpを読込]
