<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>