PHP初心者必見!モーダルポップアップの作成と活用法5選

モーダルポップアップを使用したWebページのスクリーンショット PHP
この記事は約17分で読めます。

【サイト内のコードはご自由に個人利用・商用利用いただけます】

この記事では、プログラムの基礎知識を前提に話を進めています。

説明のためのコードや、サンプルコードもありますので、もちろん初心者でも理解できるように表現してあります。

基本的な知識があればサンプルコードを活用して機能追加、目的を達成できるように作ってあります。

※この記事は、一般的にプロフェッショナルの指標とされる『実務経験10,000時間以上』を凌駕する現役のプログラマチームによって監修されています。

サイト内のコードを共有する場合は、参照元として引用して下さいますと幸いです

※Japanシーモアは、常に解説内容のわかりやすさや記事の品質に注力しております。不具合、分かりにくい説明や不適切な表現、動かないコードなど気になることがございましたら、記事の品質向上の為にお問い合わせフォームにてご共有いただけますと幸いです。
(送信された情報は、プライバシーポリシーのもと、厳正に取扱い、処分させていただきます。)

はじめに

Webページを見る際に、情報をダイレクトに伝えるために使われるポップアップ。

これがモーダルポップアップです。

そう、あの小さなウィンドウが突然現れて、何かを知らせてくれたり、ユーザーのアクションを求めたりするあのポップアップです。

この記事を読めば、初心者の方でもPHPを使ってモーダルポップアップを作成し、Webページに組み込むことが可能になります。

基本的なモーダルポップアップの作成方法から始めて、その応用例を5つ紹介します。

さらに、モーダルポップアップ作成時の注意点と対処法、そしてカスタマイズ方法もお伝えします。

サンプルコードとその詳細な解説もありますので、一緒に学びながら進めていきましょう。

●モーダルポップアップとは

モーダルポップアップは、Webページ上に一時的な情報を表示するための小さなウィンドウです。

たとえば、エラーメッセージや注意事項、ユーザーへの質問などを表示するために使用されます。

○モーダルポップアップの特徴

モーダルポップアップの最大の特徴は、他の操作を一時的に無効にすることです。

モーダルポップアップが表示されている間、ユーザーはポップアップ外の操作を行うことができません。

これにより、ユーザーの注意を強制的にポップアップに向けることができます。

●PHPでのモーダルポップアップの作り方

PHPはサーバーサイドのスクリプト言語であり、主にデータベースとのやり取りなどに使われます。

そのため、純粋なPHPだけでモーダルポップアップを作成することは難しいです。

しかし、HTMLやJavaScriptと組み合わせることで、PHPを活用したモーダルポップアップの作成が可能です。

基本的なモーダルポップアップの作成法と、PHPを活用した応用例を紹介します。

○サンプルコード1:基本的なモーダルポップアップの作成

まずは、基本的なモーダルポップアップの作成から始めてみましょう。

下記のサンプルコードは、HTMLとJavaScriptを使ってシンプルなモーダルポップアップを表示するものです。

<!DOCTYPE html>
<html>
<head>
    <title>モーダルポップアップサンプル</title>
    <style>
        #myModal {
            display: none;
            position: fixed;
            z-index: 1;
            left: 0;
            top: 0;
            width: 100%;
            height: 100%;
            overflow: auto;
            background-color: rgb(0,0,0);
            background-color: rgba(0,0,0,0.4);
        }
        .modal-content {
            margin: 15% auto;
            padding: 20px;
            border: 1px solid #888;
            width: 80%;
        }
    </style>
</head>
<body>
    <button id="myBtn">モーダルを開く</button>

    <div id="myModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <p>モーダルポップアップの内容です。</p>
        </div>
    </div>

    <script>
        var modal = document.getElementById('myModal');
        var btn = document.getElementById('myBtn');
        var span = document.getElementsByClassName('close')[0];

        btn.onclick = function() {
            modal.style.display = "block";
        }

        span.onclick = function() {
            modal.style.display = "none";
        }

        window.onclick = function(event) {
            if (event.target == modal) {
                modal.style.display = "none";
            }
        }
    </script>
</body>
</html>

このコードではHTMLとJavaScriptを使ってモーダルポップアップを実装しています。

HTML部分では、ボタンとモーダルポップアップの枠組みを定義し、JavaScript部分ではボタンをクリックしたときやポップアップ外をクリックしたときの動作を定義しています。

具体的には、ボタンをクリックするとモーダルポップアップが表示され、ポップアップ外をクリックするとモーダルポップアップが非表示になる動作を実現しています。

○サンプルコード2:内容を動的に変更するモーダルポップアップ

基本的なモーダルポップアップの作成法を学びましたが、次はPHPを活用してモーダルポップアップの内容を動的に変更する方法を紹介します。

この例では、PHPで生成されたデータを元に、JavaScriptを使ってモーダルポップアップの内容を更新します。

下記のサンプルコードは、PHPで生成されたデータ(ここでは$popupMessage)を元にモーダルポップアップの内容を更新するものです。

<!DOCTYPE html>
<html>
<head>
    <title>モーダルポップアップサンプル</title>
    <style>
        /* ...(前述のスタイル定義)... */
    </style>
</head>
<body>
    <?php
        $popupMessage = "これはPHPから生成されたメッセージです。";
    ?>
    
    <button id="myBtn">モーダルを開く</button>

    <div id="myModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <p id="popup-content"></p>
        </div>
    </div>

    <script>
        var modal = document.getElementById('myModal');
        var btn = document.getElementById('myBtn');
        var span = document.getElementsByClassName('close')[0];
        var popupContent = document.getElementById('popup-content');

        btn.onclick = function() {
            popupContent.textContent = "<?php echo $popupMessage; ?>";
            modal.style.display = "block";
        }

        span.onclick = function() {
            modal.style.display = "none";
        }

        window.onclick = function(event) {
            if (event.target == modal) {
                modal.style.display = "none";
            }
        }
    </script>
</body>
</html>

このコードでは、PHPを使って$popupMessageという変数にメッセージをセットしています。

その後、JavaScriptを使ってボタンがクリックされたときに$popupMessageの内容をモーダルポップアップに表示するようにしています。

PHPはサーバーサイドで動作するので、データベースから情報を取得したり、ユーザーの入力に基づいて動的にメッセージを生成したりするのに適しています。

そのため、この方法を使えば、ユーザーごとに異なるメッセージをモーダルポップアップで表示するなど、さまざまな応用が可能になります。

●モーダルポップアップの応用例

モーダルポップアップはその特性から様々な場面で活用することができます。

それぞれの応用例について、具体的なサンプルコードとその詳細な説明も提供します。

  1. ユーザーの入力を受け取る: フォームをモーダルポップアップで表示し、ユーザーからの入力を直接受け取ることができます。
    例えば、メールアドレスを入力してニュースレターにサインアップするフォームなどがこれに該当します。
  2. 画像ギャラリーを表示する: モーダルポップアップを使って画像ギャラリーを表示することができます。
    ユーザーが画像をクリックすると、その画像を大きく表示するためのモーダルポップアップが開きます。
  3. 動画を再生する: 動画を直接ページに埋め込む代わりに、動画を再生するためのモーダルポップアップを表示することができます。
    ユーザーが「再生」ボタンをクリックすると、動画が再生されるモーダルポップアップが開きます。

○サンプルコード3:ユーザーの入力を受け取るモーダルポップアップ

次に紹介するのは、ユーザーの入力を受け取るモーダルポップアップの作成方法です。

この例では、ユーザーがニュースレターに登録するためにメールアドレスを入力するフォームをモーダルポップアップ内に配置します。

<!DOCTYPE html>
<html>
<head>
    <title>モーダルポップアップサンプル</title>
    <style>
        /* ...(前述のスタイル定義)... */
    </style>
</head>
<body>
    <button id="myBtn">ニュースレターに登録</button>

    <div id="myModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <form>
                <label for="email">メールアドレス:</label><br>
                <input type="email" id="email" name="email" required><br>
                <input type="submit" value="登録">
            </form>
        </div>
    </div>

    <script>
        // モーダルの表示と非表示に関するJavaScriptコード
        /* ...(前述のコード)... */
    </script>
</body>
</html>

このコードでは、まずHTMLでボタンとモーダルポップアップを定義しています。

モーダルポップアップの中には、メールアドレスを入力するためのフォームが含まれています。

フォーム内には、メールアドレスを入力するためのテキストフィールドと、その情報を送信するための「登録」ボタンが配置されています。

ユーザーがボタンをクリックすると、モーダルポップアップが表示され、ユーザーはメールアドレスを入力して登録することができます。

ここで使用したサンプルコードはシンプルな例ですが、実際の利用では、入力されたメールアドレスをサーバーに送信してデータベースに保存するなどの追加処理が必要となるでしょう。

そのため、JavaScriptとPHPを組み合わせることで、このプロセスを実装することが可能です。

○サンプルコード4:モーダルポップアップで画像ギャラリーを表示

次に、画像ギャラリーを表示するためのモーダルポップアップの作成方法を紹介します。

この例では、いくつかのサムネイル画像がページに表示され、ユーザーがサムネイルをクリックすると、その画像が大きく表示されるモーダルポップアップが開きます。

<!DOCTYPE html>
<html>
<head>
    <title>モーダルポップアップサンプル</title>
    <style>
        /* ...(前述のスタイル定義)... */
    </style>
</head>
<body>
    <img id="myImg" src="thumbnail.jpg" alt="画像のサムネイル">
    <div id="myModal" class="modal">
        <span class="close">&times;</span>
        <img class="modal-content" id="img01">
    </div>

    <script>
        // モーダルの表示と非表示に関するJavaScriptコード
        /* ...(前述のコード)... */
    </script>
</body>
</html>

このコードでは、HTML部分にサムネイル画像とモーダルポップアップを定義しています。

モーダルポップアップの中には、クリックされた画像を大きく表示するためのimgタグが含まれています。

ユーザーがサムネイル画像をクリックすると、モーダルポップアップが表示され、その中に大きな画像が表示されます。

なお、画像をクリックするとモーダルが表示されるためのJavaScriptのコードは省略していますが、実際にはその処理を実装する必要があります。

ここで表したサンプルコードは一つの画像に対してのものですが、複数の画像に対応させるためには、各画像に対して個別のモーダルポップアップを作成するか、JavaScriptを使用して動的に画像を切り替えるなどの処理を追加することが考えられます。

○サンプルコード5:モーダルポップアップで動画を再生

最後に、動画を再生するモーダルポップアップの作成方法をご紹介します。

この例では、ユーザーが特定のボタンをクリックすると、モーダルポップアップ内で動画が再生されるというシチュエーションを想定しています。

<!DOCTYPE html>
<html>
<head>
    <title>モーダルポップアップサンプル</title>
    <style>
        /* ...(前述のスタイル定義)... */
    </style>
</head>
<body>
    <button id="myBtn">動画を再生</button>

    <div id="myModal" class="modal">
        <div class="modal-content">
            <span class="close">&times;</span>
            <video width="400" controls>
                <source src="movie.mp4" type="video/mp4">
                お使いのブラウザはvideoタグをサポートしていません。
            </video>
        </div>
    </div>

    <script>
        // モーダルの表示と非表示に関するJavaScriptコード
        /* ...(前述のコード)... */
    </script>
</body>
</html>

このコードでは、HTML部分で「動画を再生」ボタンとモーダルポップアップを定義しています。

モーダルポップアップ内には、videoタグを使用して動画を埋め込んでいます。

ユーザーが「動画を再生」ボタンをクリックすると、モーダルポップアップが表示され、その中で動画が再生されます。

動画を再生するためのJavaScriptのコードは省略していますが、ボタンがクリックされたときにモーダルポップアップを表示し、動画を自動再生するなどの機能を追加するためには、JavaScriptを使用してそのような処理を実装する必要があります。

以上が、ユーザーの入力を受け取る、画像ギャラリーを表示する、そして動画を再生するためのモーダルポップアップの作成方法です。

それぞれ異なる用途に応じて、モーダルポップアップのコンテンツや振る舞いをカスタマイズすることができます。

●モーダルポップアップ作成時の注意点と対処法

モーダルポップアップを作成する際には、いくつかの注意点があります。

まず一つ目は、モーダルポップアップがページの主要なコンテンツを覆い隠してしまうことから、ユーザーが求める情報へのアクセスを妨げないようにすることが重要です。

そのためには、モーダルポップアップは必要な情報を伝えるため、またはユーザーの明確なアクションを促すためにのみ使用するとよいでしょう。

二つ目の注意点は、モーダルポップアップがページのロード時間を増加させる可能性があることです。

大量の画像や動画をモーダルポップアップ内にロードすると、それらのコンテンツが全て読み込まれるまでページ全体のロード時間が長くなる可能性があります。

これを避けるためには、モーダルポップアップ内のコンテンツはユーザーがそれを必要とするまでロードしない「遅延ロード」のテクニックを利用するとよいでしょう。

三つ目の注意点は、モーダルポップアップがユーザーの注意を散漫にさせる可能性があることです。

モーダルポップアップは画面上で目立つため、その使用はユーザーの注意を引くのに効果的です。

しかし、それが頻繁にまたは不適切なタイミングで表示されると、ユーザーの体験を阻害し、サイトから離脱する原因となる可能性もあります。

そのため、モーダルポップアップの表示タイミングは慎重に選ぶことが重要です。

これらの注意点を理解し、適切な対処法を取り入れることで、モーダルポップアップはウェブページのユーザビリティとエンゲージメントを高める強力なツールとなります。

●モーダルポップアップのカスタマイズ方法

モーダルポップアップはそのデザインや動作を自由にカスタマイズすることが可能です。

例えば、モーダルポップアップの背景色やフォント、サイズをCSSで変更したり、表示・非表示のアニメーションをJavaScriptで制御したりすることができます。

また、モーダルポップアップ内に表示するコンテンツも自由に変更することができます。

テキストや画像、動画の他にも、フォームやマップ、スライドショーなど、様々なコンテンツをモーダルポップアップ内に配置することが可能です。

さらに、モーダルポップアップの表示タイミングもカスタマイズすることができます。

特定のボタンがクリックされた時だけでなく、ページのスクロール位置や滞在時間に基づいてモーダルポップアップを表示するといった高度な制御も可能です。

これらのカスタマイズは、PHPやJavaScript、CSSといったウェブ開発技術を使用して行うことができます。

モーダルポップアップのカスタマイズを通じて、自分だけのオリジナルなウェブページを作ることができます。

まとめ

PHP初心者でも作成できる、モーダルポップアップの作成と活用法を5つご紹介しました。

具体的なサンプルコードと詳細な解説を通じて、初心者でも理解しやすい内容となっています。

モーダルポップアップはウェブページ上で重要な情報を効果的に伝えるための一つの手段です。

しかし、その利用はユーザビリティとロード時間、ユーザの注意を散漫にさせないことを考慮する必要があります。

また、モーダルポップアップは自由にカスタマイズすることが可能であり、それぞれのウェブページに最適な形にすることができます。

この記事が、あなたのWebページにモーダルポップアップを追加する一助となることを願っています。

それでは、Happy Cording!