[PHP-users 29027] Re: Smartyの導入について

nomoto shin-1 @ ca2.so-net.ne.jp
2006年 4月 19日 (水) 15:50:08 JST


  nomotoです。

>廣瀬です
>
>HTMLとphpを分けるというだけなら、
>とりたててsmartyを使わなくてもいいとおもいます。
>こんなんじゃまずいですかね
>ダメだって反論ききたいです。

利点ばっかり挙げても何なので、Smartyで困る面もあげます。

JavaScriptとの併用です。Smartyの{ }表記がJavaScriptとバッティング
するのでJavaScript部分を{literal}タグで囲わないといけないのですが
そうするとJavaScript中にSmartyで値を展開したいときに困ります。

<input type="button" value="押してね" onClick="if(frm.auth.value=''){alert('{$ok_msg}')}else{alert('{$ng_msg}')}">
なら
<input type="button" value="押してね" onClick="{literal}if(frm.auth.value=''){alert('{/literal}{$ok_msg}{literal}')}else{alert('{/literal}{$ng_msg}{literal}')}{/literal}">
な感じでグチャグチャ。

回避方法としてはSmartyで展開したい値はダミーのhiddenタグに
展開しておいて、それのvalueを参照するようにして、JavaScript部分
をごっそりliteralで囲む。

{literal}
<input type="button" value="押してね" onClick="if(frm.auth.value=''){alert(frm.dummy_ok_msg.value)}else{alert(frm.dummy_ng_msg.value)}">
{/literal}
<input type="hidden" name="dummy_ok_msg" value="{$ok_msg}">
<input type="hidden" name="dummy_ng_msg" value="{$ng_msg}">



PHP-users メーリングリストの案内