【javascript】Smarty×動的javascriptで共通の定数を使用する方法

Javascript

わざわざ動的にしなくても・・・という感じですが、
メッセージクラスをひとつにし、javascriptでも共通の定数を使用できるようにしたかったので、
その方法をメモしておきます。
Smartyを使っています。

javascript.php


<?php
// DB接続情報を記述
// 定数化したいメッセージを格納
$message = array(
"A" => "apple",
"B" => "banana",
"C" => "tomato"
);
// smartyにアサイン
$smarty->assign('msg', $message);
$smarty->display('javascript.tpl');
?>

以上を書けば、通常テンプレートファイルで
{$msg.A} → apple
と表示され、$messageが使用できるようになりますが、
同じようにjavascriptで使用したい場合には以下のように記述します。

javascript.tpl

{foreach from=$msg key=message_key item=message_val}
{$message_key} = "{$message_val}";
{/foreach}

これで、javascriptでもtplファイル同様に$messageが使用できるようになります。

タイトルとURLをコピーしました