0

json_encodeリテラルのjavascriptブロックの内部を作成するにはどうすればよいですか? 基本的にこれはスマートなテンプレートです。

 {literal}
    <script>
        function openWin() {
            var O = {php} echo json_encode($obj);{/php}; // syntax error         
            alert(O);
        }
    </script>
 {/literal}
4

1 に答える 1

1

Smarty テンプレートをいじらなければならなかったのは久しぶりですが、php コードを実行するにはリテラル タグを閉じる必要があると思います。エラーが発生した場合は、echoあまりにも削除してみてください - smarty タグ内で暗黙的かどうかは思い出せません。

{literal}
  <script>
    function openWin() {
      var O = {/literal}{php}echo json_encode($obj);{/php}{literal};       
      alert(O);
    }
  </script>
{/literal}

補遺:

変数をエコーするためのスマートな構文は、「フィルター」(つまり、関数) にも対応できます。

{$obj|json_encode}
于 2012-10-30T16:39:16.097 に答える