JavaScript の記事の中ではいままで全て静的なソースで説明を行ってきましたが、 今回は JavaScript のスクリプトを PHP から生成する例を示します。
Web のシステムを組む場合 PHP をよく使っていますが PHP では動的に HTML のスクリプトを生成します。
HTML のスクリプトと言っても結局は文字列の集合体であって JavaScript のスクリプトも同様に動的に出力できます。
以下の例は PHP のソースですがページが表示された最初にメッセージを表示する部分を JavaScript として動作する様に PHP で出力させています。
■PHP から JavaScript を生成させる簡単な例(test-java.php 等のファイル名として実行)
<?php // javascript の文字列の生成 $strJavaScript = '<script> $(function() { alert("test"); }); </script> '; ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test jQuery</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <?php // 生成された javascript の出力 echo $strJavaScript; ?> </head> <body> <p>テストメッセージ</p> </body> </html>
上記のソースは PHP のソースとしてファイル拡張子として .php としています。 当然のことながら Web 上では PHP が実行できる環境は必須です。
尚、 HTML の BODY 部の中身は特に意味があるものではありません。
これを実行させた場合に、アラートで「test」と表示されるはずです。 ブラウザで生成された HTML スクリプトは以下の様になるはずです。
■生成された HTML スクリプト
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test jQuery</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script> $(function() { alert("test"); }); </script> </head> <body> <p>テストメッセージ</p> </body> </html>
今回の例は HEAD 部 BODY 部ともにほとんど固定されたものですが PHP ではそれらの中身全て動的に生成が可能ですし、 そういったことが一般的です。 今回は javascript の生成のみを可変的にしましたが PHP と組み合わせることで複雑なことができると思います。
例えば、$_GET や $_POST などで動作指示を行い、今回のアラート表示の実行を制御することができます。
■$_GET で動作指示を行う例
<?php // javascript の文字列クリア $strJavaScript = ''; if (isset($_GET["alert"]) == true) { // [test-java.php?alert] javascript の文字列の生成 $strJavaScript = '<script> $(function() { alert("test"); }); </script> '; } ?> <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>test jQuery</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <?php // 生成された javascript の出力 echo $strJavaScript; ?> </head> <body> <p>テストメッセージ</p> </body> </html>
この例ですと「test-java.php?alert」とすればページが最初に表示された時にアラートが表示されます。
「test-java.php」のままではアラートは表示されません。
コメント