0

スマート配列'data'を取得していて、それをjavascript変数'store'内に格納したい:

{if isset({$data})}
        <script type="text/javascript">
            var store = {ldelim}{rdelim};
            {foreach from=$data key=k item=v}
                var index = {$k};
                store.index = {$v};
            {/foreach}
                alert(store);
        </script>
    {/if}

しかし、アラート出力はありません。誰かが助けることができますか?

Rmk:これを実行するにはそれが必要です

$("input").each(function(index) {
                    return this.value = store.index;
                });

編集:ソースコードで、var store={};を取得します。

4

2 に答える 2

1

Smarty を介して JavaScript オブジェクト/配列を作成しようとする、長くて非常に読みにくい方法に進む代わりに、これを試してください。

$arr = json_encode(array(array('key1' => 'value1'), array('key2' => 'value2')));
$smarty->assign('data', $arr);

そしてテンプレートで;

<script>
var store = {$data};
</script>

そこで、PHP に有効な JavaScript オブジェクトを作成させ、その文字列を smarty に割り当てます。これにより、変数が作成され、その文字列が割り当てられるだけです。

于 2013-01-24T12:57:04.947 に答える
-2

間違ったタグを書きました。{literal}Smartyでは、JavaScriptを有効にするには、タグを使用する必要があります。

例:

{literal}
<script type="text/javascript" language="javascript">
// All your regular javascript code.....
</script>
{/literal}
于 2013-01-24T12:45:18.183 に答える