iT邦幫忙

0

smarty 傳值給 js 問題

php
chan15 6 年前5891 瀏覽

目前我把 Server 一些訊息字串都放在 configs/lang.conf 裡面
像是
NO_DATA = '沒有資料',NEWS = '新聞'
在樣板頁面可以順利輸出 {#NO_DATA#}
但不知道如何可以讓 include 進來的 js 一樣使用這些字串
像是
alert("{#NO_DATA#}"); 希望可以一起接收到 configs 裡面語言的設定
alert 出沒有資料的訊息

2 個回答

2
fillano
iT邦超人 1 級 ‧ 6 年前
最佳解答

如果單純是在html裡面用script標籤引入靜態的Javascript檔案,當然做不到。如果要做到,我想還需要用php產生Javascript,然後把你要的訊息集中在一個Javascript物件裡面,然後其他Javascript就可以取用。

fillano iT邦超人 1 級 ‧ 5 年前 檢舉

嗯嗯,用

<pre class="c" name="code"><script src="xxx.js"></script>

的話,Smarty是不會處理的,他處理的單純只有template檔案裡面的東西。

2
yogo
iT邦新手 3 級 ‧ 6 年前

你目前這樣寫js沒作用嗎?

看更多先前的回應...收起先前的回應...
chan15 iT邦新手 5 級 ‧ 6 年前 檢舉

這樣寫他 alert 出 {#NO_DATA#} XD

yogo iT邦新手 3 級 ‧ 6 年前 檢舉

你應該是去衝到js的{}符號,改定義smarty的左右符號為<{}>應該就能解決了

yogo iT邦新手 3 級 ‧ 6 年前 檢舉

你也可以參考一下這篇文章

Smarty 入門
http://www.jaceju.net/blog/archives/23

註:有時為了中文衝碼及 Javascript 的關係,我們透過 $left_delimiter 和 $right_delimiter 兩個 Smarty 類別屬性,來將標示符號換掉。

fillano iT邦超人 1 級 ‧ 6 年前 檢舉

chan15寫的Javascript是:

chan15提到:

&lt;pre class="c" name="code">alert("{#NO_DATA#}");

應該不會衝到Javascript,而且如果衝到,alert應該不會執行,結果也不會是那樣...chan15,你的Javascript是怎樣放到程式裡?是用

&lt;pre class="c" name="code">
&lt;script src="xxx.js">&lt;/script>

還是

&lt;pre class="c" name="code">
&lt;script>
{include file="xxx.js"}
&lt;/script>

等等,請說明一下,會比較清楚。

chan15 iT邦新手 5 級 ‧ 5 年前 檢舉

<script src="xxx.js"></script>

是這樣

我要發表回答

立即登入回答