忍者ブログ

VB.NET-TIPS などプログラミングについて

VB.NETのTIPS(小技集)を中心に、Javascript、PHP その他のプログラミングについて少し役に立つ情報を発信します。いわゆる個人的な忘備録ですが、みなさんのお役に立てれば幸いです。

[PR]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

JavaScript PHPからのスクリプトの生成と制御

JavaScript の記事の中ではいままで全て静的なソースで説明を行ってきましたが、 今回は JavaScript のスクリプトを PHP から生成する例を示します。

Web のシステムを組む場合 PHP をよく使っていますが PHP では動的に HTML のスクリプトを生成します。
HTML のスクリプトと言っても結局は文字列の集合体であって JavaScript のスクリプトも同様に動的に出力できます。

以下の例は PHP のソースですがページが表示された最初にメッセージを表示する部分を JavaScript として動作する様に PHP で出力させています。

PHP から JavaScript を生成させる簡単な例(test-java.php 等のファイル名として実行)

HTMLファイル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//  javascript の文字列の生成
$strJavaScript =
'<script>
    $(function() {
        alert("test");
    });
</script>
';
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test jQuery</title>
<?php
//  生成された javascript の出力
echo $strJavaScript;
?>
</head>
<body>
    <p>テストメッセージ</p>
</body>
</html>


上記のソースは PHP のソースとしてファイル拡張子として .php としています。 当然のことながら Web 上では PHP が実行できる環境は必須です。
尚、 HTMLBODY 部の中身は特に意味があるものではありません。

これを実行させた場合に、アラートで「test」と表示されるはずです。 ブラウザで生成された HTML スクリプトは以下の様になるはずです。

■生成された HTML スクリプト

HTMLファイル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>test jQuery</title>
<script>
    $(function() {
        alert("test");
    });
</script>
</head>
<body>
    <p>テストメッセージ</p>
</body>
</html>


今回の例は HEADBODY 部ともにほとんど固定されたものですが PHP ではそれらの中身全て動的に生成が可能ですし、 そういったことが一般的です。 今回は javascript の生成のみを可変的にしましたが PHP と組み合わせることで複雑なことができると思います。
例えば、$_GET$_POST などで動作指示を行い、今回のアラート表示の実行を制御することができます。

$_GET で動作指示を行う例

HTMLファイル
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<?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>
<?php
//  生成された javascript の出力
echo $strJavaScript;
?>
</head>
<body>
    <p>テストメッセージ</p>
</body>
</html>

この例ですと「test-java.php?alert」とすればページが最初に表示された時にアラートが表示されます。
「test-java.php」のままではアラートは表示されません。


関連する記事

JavaScript IE では関数のデフォルト引数が動作しない
JavaScript PHPからのスクリプトの生成と制御
JavaScript ファイルのダウンロードについて(link, XMLHttpRequest, msSaveBlob)
JavaScript jQueryを使った checkbox の操作方法
JavaScript jQueryを使った checkbox の操作方法・その2(チェック件数)
JavaScript jQueryで password 入力を見える様にする方法
JavaScript jQueryでQRコードを表示する方法
JavaScript jQueryで要素を追加する方法(append,appendTo,before,after)
JavaScript jQueryで Form のSUMITを処理する方法( submit() )
JavaScript jQueryでモーダルウインドウ風の表示をする方法(css:display, css:z-index, fadeIn, fadeOut)

おすすめ本

share











PR

コメント

コメントを書く