前提・実現したいこと
nl2brで改行できず、<br/>と反映されてしまいます。
サーバ側ではなくできればtpl側だけで処理をしたいのですが
どのようにするとスマートでしょうか?
コードといっても各必要もないと思いますが一応。
$result.dataにはテキストエリアで前画面で入力された値が入っています。
例として
$result.data="あああ
ああ"
とします。
tpl側は
<td > {$result.data|nl2br]} </td>とすると
あああ <br/> ああ
となってしまいます。
どのようなコードで起きた現象かがわからないとなんとも言えません。「どうしたらスマートか」は比較対象がないと判断できませんよね?それは質問者さんだけで判断できるものならいいですが、元のコードがないのにアドバイスは無理です。質問を編集して追記してください。
変換しようとしているデータのサンプルも必要です。再現確認をしないと回答ができない内容なので。
コードなんか必要ありますかね?この質問に。
どうやって「できない」のかわからないのに回答しようがないかと思いますが、そこは質問者さんが判断できることではないと思います。
出力されたHTMLのソースコードとして <br/> となってるんですか?
Smartyも2と3では仕様が大きく違うので、再現確認ができる情報を提示しないと無駄なやりとりが何度も発生することになります。そのうえで「コードなんか必要ありますかね?」というのは「解決なんてしなくてもいい」と言っているのとほぼ同等です。
>mather あああ <br/> ああのようになります。
それは、HTMLをブラウザで見たら正常に改行されているはずです。ブラウザで表示してないんですか?
どのように実行して、結果をどのように表示させていますか? Webブラウザは何ですか? コマンドラインで実行して結果を表示しているわけではないですよね?
> mather CHERRY すいません、smartyの設定で$smarty->escape_html = true;と記述してる箇所をみつけました。そのせいだったようです。おさわがせしました。このプロパティに true を設定しておくことで、全てのテンプレート変数出力に対してHTMLエスケープが施されていたようです。割と長い時間ハマっていました。ありがとうございます。

回答3件
あなたの回答
tips
プレビュー