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」のままではアラートは表示されません。
コメント