<FLEXY:TOJAVASCRIPT JSVAR="PHPVAR"> ...

<FLEXY:TOJAVASCRIPT JSVAR="PHPVAR"> ... – データを PHP から Javascript に簡単に渡せるようにする

Synopsis

使用法 ( <flexy:tojavascript JSVAR="PHPVAR" ...> )

Description

javascript のコードのせいで "何じゃこりゃ?" というようなことが起こり、 まるで flexy タグが壊れてしまったように見えることがあります。それを防ぐため、 Flexy は、script を含むコンテンツを扱う際にパーサを意図的に OFF にします (script タグ内での PHP の詳細については、設定オプションを参照ください)。

その結果、javascript コードブロックの中では flexy タグを使用することができなくなります。 flexy:tojavascript タグは、この問題を解決するためのもので、 javascript のテストをアプリケーションとは別にできるようになります。 また、きれいにコーディングできるようになります (つまり、わかりやすいコードを書けるようになります)。

この機能は PEAR の HTML_Javascript ライブラリに依存します。

Example

javascript と flexy:tojavasscript を使用したテンプレート

<?php
<html><head>
<
title>Example</title>


<
flexy:toJavascript
    flexy
:prefix="test_abc_"
    
abcg="xyz"
    
abcd="xyz"
    
srcXxx="xyz"
>
<!-- 

テンプレートをブラウザで開いて確かめるための内容を指定することができます。
テンプレートは、コンパイル時にこの内容を削除します。
-->
    <
script type="text/javascript">
  
    var 
test_abc_abcg '123';
    var 
test_abc_abcd '123';
    var 
test_abc_srcXxx '123';

    
</script>

</flexy:toJavascript>




<flexy:toJavascript abcg="xyz">
    <script type="text/javascript">
    var xyz = '123';
    </script>
</flexy:toJavascript>


<body>
<p>Example of flexy:toJavascript with default values.</p>
</body></html>
?>

コンパイルされたテンプレート

<html><head>
<title>Example</title>



<?php require_once 'HTML/Javascript/Convert.php';?>
<script type='text/javascript'>
<?php $__tmp HTML_Javascript_Convert::convertVar($t->xyz,'test_abc_abcg',true);
    echo (
is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
<?php $__tmp 
HTML_Javascript_Convert::convertVar($t->xyz,'test_abc_abcd',true);
    echo (
is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
<?php $__tmp 
HTML_Javascript_Convert::convertVar($t->xyz,'test_abc_srcXxx',true);
    echo (
is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
</script>

?php require_once 'HTML/Javascript/Convert.php';?>
<script type='text/javascript'>
<?php $__tmp HTML_Javascript_Convert::convertVar($t->xyz,'abcg',true);
    echo (
is_a($__tmp,"PEAR_Error")) ? ("<pre>".print_r($__tmp,true)."</pre>") : $__tmp;?>
</script>





<body>
<p>Example of flexy:toJavascript with default values.</p>
</body></html>

テンプレートからの出力 (値は何も設定しない)

         
<html><head>
<title>Example</title>


<script type='text/javascript'>
test_abc_abcg = null;
test_abc_abcd = null;
test_abc_srcXxx = null;
</script>




<script type='text/javascript'>
abcg = null;
</script>





<body>
<p>Example of flexy:toJavascript with default values.</p>
</body></html>
flexy のフォーム要素の名前に、変数を使用する (Previous) HTML_Template_IT (Next)
Last updated: Sun, 21 Dec 2014 — Download Documentation
Do you think that something on this page is wrong? Please file a bug report or add a note.
View this page in:

User Notes:

Note by: willbickerstaff@mailshack.com
Unfortunately this page doesn't address the "WTF" effect of poor documentation. I'd help if I had the vaguest idea "WTF" this page is going on about
Note by: nomatter@php.org
Are you people serious? This is one of the worst pieces of documentation I've seen, to date.

What are the attributes for this flexy tag? How do you populate a javascript variable with a PHP one? What scope issues exist?

Can somebody elaborate how this actually works? The examples given are useless.