PHP⇒JavaScript

PHP⇒JavaScript の呼び出しと変数の参照です。

PHP⇒JavaScript 変数の参照

  1. PHP の変数を JavaScript で参照します。
    php_js.php のソースコードを Shift-JIS でタイプしてサーバーにアップロードして下さい。
    <html>
    <body>
      <?php
        $v1 = 123;
        $v2 = 'abcXYZ';
      ?>
      <script type="text/javascript">
        var js_v1="<?php echo $v1;?>";
        var js_v2="<?php echo $v2;?>";
        window.alert("v1=" + js_v1 + "  v2=" + js_v2);
      </script>
    </body>
    </html>
    
  2. 次のリンクをクリックすると php_js.php を呼び出します。
    PHPの変数を参照
    php_js.php の呼び出し方です。
    <a href="http://maedakobe.rw.xsi.jp/php/php_js.php">PHPの変数を参照</a>
    
  3. PHP のプログラムはサーバー上で実行されます。
    JavaScript のプログラムは、PHP が吐き出したコードがクライアント側のブラウザに渡されて実行されます。
    従って、クライアント側に送られるのは PHP の echo 命令の実行結果です。
        var js_v1="<?php echo $v1;?>";
    
  4. このソースプログラムがクライアント側に送られてきたときのソースコードです。
    PHP の $v1, $v2 の値が JavaScript に送られて window.alert() で表示されます。
    <html>
    <body>
        <script type="text/javascript">
        var js_v1="123";
        var js_v2="abcXYZ";
        window.alert("v1=" + js_v1 + "  v2=" + js_v2);
      </script>
    </body>
    </html>
    

  1. JavaScript のコードを PHP で吐き出す次の例題です。
    js_php.php のソースコードを Shift-JIS でタイプしてサーバーにアップロードして下さい。
    <html>
    <body>
    <?php
        $a="test";
        print("<script type=\"text/javascript\">");
        print("var a = '".$a."';\n");
        print("alert(a);\n");
        print("</script>\n");
    ?>
    </body>
    </html>
    
  2. 次のリンクをクリックすると js_php.php を呼び出します。
    PHPでJavaScriptを吐き出す
    js_php.php の呼び出し方です。
    <a href="http://maedakobe.rw.xsi.jp/php/js_php.php">PHPでJavaScriptを吐き出す</a>
    
  3. PHP で $a を定義します。
    <?php
        $a="test";
    
  4. JavaScript のコードを吐き出します。
        print("<script type=\"text/javascript\">");
        print("var a = '".$a."';\n");
        print("alert(a);\n");
        print("</script>\n");
    

  1. PHP の配列を文字列に変換して JavaScript に渡します。
    php_js_ar1.php のソースコードを Shift-JIS でタイプしてサーバーにアップロードして下さい。
    <html>
    <body>
    <?php
        $arrBar = array(1,2,3);
        $arrBar = implode(',', $arrBar);
    ?>
    <script type="text/javascript">
        var jsBar = '<?php echo $arrBar; ?>';
        var arr = jsBar.split(',');
        document.write(arr);
    </script>
    </body>
    </html>
    
  2. 次のリンクをクリックすると php_js_ar1.php を呼び出します。
    配列の参照-1
    php_js_ar1.php の呼び出し方です。
    <a href="http://maedakobe.rw.xsi.jp/php/php_js_ar1.php">配列の参照-1</a>
    
  3. JavaScript のループの中に echo 文を置けたら簡単なのですが、JavaScript の命令が実行されるのはクライアント側に送られてからです。
    最も直観的なのは、配列を文字列に変換して渡す方法でしょうか?。
  4. PHP の配列 $arrBar を implode() 関数で ',' で区切って文字列に変換します。
  5. 変換した文字列を echo で JavaScript に送ります。
  6. JavaScript 側では split(',') 関数で配列に戻して document.write(arr) で印字します。

  1. PHP の配列を JavaScript で参照します。
    php_js_ar2.php のソースコードを Shift-JIS でタイプしてサーバーにアップロードして下さい。
    <html>
    <body>
    <?php
        $arr = array("maeda","suzuki","tanaka");
        $jsonTest = json_encode($arr);
    ?>
    <script type="text/javascript">
        var arr = JSON.parse('<?php echo $jsonTest;?>');
        document.write(arr);
    </script>
    </body>
    </html>
    
  2. 次のリンクをクリックすると php_js_ar2.php を呼び出します。
    配列の参照-2
    php_js_ar2.php の呼び出し方です。
    <a href="http://maedakobe.rw.xsi.jp/php/php_js_ar2.php">配列の参照-2</a>
    
  3. 配列を文字列に変換しないで渡すには JSON を使います。
    PHP では json_encode($arr); でコード変換します。
  4. JavaScript では JSON.parse(''); で $jsonTest を受け取ります。
  5. document.write(arr) で印字します。

PHP⇒JavaScript 関数を呼び出す

  1. PHP から JavaScript の gcm(d1, d2) 関数を呼び出します。
    js_func.php のソースコードを Shift-JIS でタイプしてサーバーにアップロードして下さい。
    <html>
    <head>
    <script type="text/javascript">
    function gcm(d1, d2)
    {   document.write(d1, " : ", d2, "<br>");
        while(d1!=d2)
        {   if (d1>d2)  d1 = d1 - d2;
            else        d2 = d2 - d1;
        }
        document.write("GCM : ", d1, "<br>");
    }
    </script>
    </head>
    
    <body>
    <?php
        $d1= $_GET["d1"];
        $d2= $_GET["d2"];
        print("<script type='text/javascript'>\n");
        print("gcm($d1, $d2)");
        print("</script>\n");
    ?>
    </body>
    </html>
    
  2. 次のリンクをクリックすると PHP が実行されます。
    GCM の計算
    js_func.php を呼び出すコードです。
    <a href="http://maedakobe.rw.xsi.jp/php/js_func.php?d1=32&d2=24">GCM の計算</a>
    

前田稔の超初心者のプログラム入門
PHP Program