• ベストアンサー

Smartyでの改行

textareaのデータをPOST送信し、あるPHPで受けています。 その受けたデータをSmartyのテンプレートで表示しようとしておりますが、改行がうまくいきません。 textareaのwrapを使用し、自動改行しています。 例えば、{$data.note}のデータ内容が「ああああああああああああああああああ」とし、 「備考:{$data.note}」で表示すると、 備考:ああああああああ ああああああああああ と表示されます。 これを、 備考:ああああああああ    ああああああああああ という風に表示させたいのですが、どうすればいいのか、解かるかた、ご回答をお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • koji4964
  • ベストアンサー率100% (4/4)
回答No.3

テンプレートに {$data.note|wordwrap:8:"<br />"} これでどうすか?

参考URL:
http://sky.freespace.jp/smarty/SmartyManual_2-6-6J_html/language.modifier.wordwrap.html
全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • inu2
  • ベストアンサー率33% (1229/3720)
回答No.2

tableタグやCSSでレイアウト組めばよいのでは? Smartyの問題でもなんでもなく、単にHTMLの問題かと思います

全文を見る
すると、全ての回答が全文表示されます。
  • salf
  • ベストアンサー率42% (27/64)
回答No.1

「備考:」を textarea に表示するのであれば不可能だと思います。 「備考:」を textarea 外に表示すれば wanwan1137 さんが思っているように表示できると思うのですが、 それではいけないのでしょうか?

wanwan1137
質問者

お礼

ご回答ありがとうございます。 「備考:」は、textarea外です。また「備考:」は、 Smartyのテンプレートに表示してます。 textareaには、「ああああああああああああああ」のみ、入ります。 textareaに入力されたデータを、POST送信である変数に代入し、Smartyのテンプレートで表示させています。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • メールフォーム(Smarty)の改行について

    textareaに入力した文章がoutlookで受信するとどうしても 改行ではなく半角スペースになってしまいます。 (内容確認画面では正常に改行されて表示されます) 試しにYAHOOメールで受信してみたところ正常に改行されて表示されました。 outlookで受信した場合にも正常に改行された状態で受信したいのですがどのようにしたらいいのでしょうか? nl2br($_POST["msg"]);としてみたのですが結果変わらずです・・・ phpの改行コードはLFで文字コードはUTF-8Nです。 phpファイルのtextarea部分の読み込みは以下の通りです。 $form->addElement('textarea', 'msg', 'お問い合わせ内容', array('rows' => 8, 'cols' => 30,)); tplファイルには <th>■ {$form.msg.label}</th> <td>{$form.msg.html}</td>としています。

    • 締切済み
    • PHP
  • Smartyのテンプレート

    出来なくて困っていることがあります。 Smartyのテンプレートは通常「templates」フォルダに格納すると思いますが、そのファイルを書き換えることは可能でしょうか? 流れとして PHPで既存のテンプレートを表示 ↓ その中のPOSTデータを元に既存のテンプレートを上書きして保存 fopenのwで開き、smarty->fetchで情報を載せたデータを作り、fwriteで同じファイルに上書きしようとおもったのですが、うまくいきません。 そもそもtemplatesフォルダの中身をプログラムで更新できるものなのか、できるならどのようにするのがよいのか、お分かりになる方がいましたらご教授願います。

    • 締切済み
    • PHP
  • Smartyで出力したHTMLコードが改行されない

    PHPのテンプレートエンジンであるSmaryについて教えてください。 SmartyテンプレートをUTF-8、かつ改行コードLFで作成しました。 (テキストエディタでちゃんと上記の通りなってるかも確認) ◯◯.tplとし、Webサーバを介して描画したところ、出力結果のHTMLのソースが改行されないで出力されてしまいました。 (ブラウザでのHTML自体の描画はできているので、HTMLから改行のみ消えてHTMLがみにくい状態) なぜか<script>タグで区切ったJavascriptのコードの部分だけはちゃんと改行されています。 HTML部分も改行したいのですが、なにか設定が必要なのでしょうか。 (以前、Smarty2.x系を使ったときは出力されたHTMLは改行されていました。) 【環境】 OS:MaxOSX Lion Webサーバアプリ:ZendServerCE5.3.5 Smarty:バージョン3.1.4 テンプレート:UTF-8、改行LFで作成 以上、よろしくお願いします。

    • 締切済み
    • PHP
  • smartyについて

    phpからassignしテンプレートに表示するには問題ないのですがテンプレートでassignし 表示させたく単純に以下のようにしてみましたがエラーになってしまいます。 <{assign var="aaa"value="名前"}> <{$aaa}> ※デリミタ設定は『<{』と『}>』で指定してます エラー内容は以下の通りです。 Fatal error: Smarty error: [in テンプレートファイル line assignしている行]: syntax error: invalid attribute name: '=' (Smarty_Compiler.class.php, line 1550) in ~中略~\Smarty\Smarty.class.php on line 1093 なんとなくではありますが'='が原因のような事はわかるのですが解決できずにおります。 この場合どうすればいいのでしょうか?

    • ベストアンサー
    • PHP
  • Smartyの設置について教えてください。

    お名前.COMにて提供しているVPSサーバプランについてですが、どなたかSmartyを設置された方いらっしゃいますか? いつもの通りユーザ階層にSmartyフォルダを設置し、一通りの事を行って、いざアクセスするもページが真っ白で表示されません。 エラーログを見ても普通にSmarty.classには到達しているようで、何が原因なのかわかりません(泣) てすとで通常のPHPページを作成し、現在の日時を表示するよう書き込んでアップしてみましたところ、普通に表示されるので普通にPHPは使えるんだなって感じです。 では、なぜSmartyだけうまく表示できないのでしょうか? 恐らく私の基本的なミスが原因だと思いますが、一応どなたか設置経験のある方がいましたら、設置内容を改めて教えていただければと思います。 どうぞ、宜しくお願いします。 ちなみに設置階層は下記の通りです。 /httpdocs/Smarty/libs/Smarty.class.php /httpdocs/data/cache /httpdocs/data/configs /httpdocs/data/templates /httpdocs/data/templates_c また、トップにあたるindex.phpの中は以下の通りです。 <?php require_once('./Smarty/libs/Smarty.class.php'); $smarty = new Smarty(); $smarty->template_dir = './data/templates/'; $smarty->compile_dir = './data/templates_c/'; $smarty->config_dir = './data/configs/'; $smarty->cache_dir = './data/cache/'; $smarty->display('index.tpl'); ?> アドバイスで構いませんので宜しくお願いします。

    • 締切済み
    • PHP
  • 入力テキスト内で改行コードが表示されてしまいます。

    現在phpで掲示板を作成しております。 返信画面でデータベースに保存している過去データを 返信用のテキストボックスで表示しているのですが、 例) ・コード <TEXTAREA NAME=body COLS=50 ROWS=8 wrap="soft"><? print $body ?></TEXTAREA> ・ブラウザ上 掲示板です<BR>テスト という風に表示されてしまいます。 改行が実行されないのはなぜでしょうか?

    • 締切済み
    • PHP
  • textareでの改行

    ホームページ上のtextareaで入力してもらった情報を取得するCGI(perl)スクリプトを書いています。流れとしては,フォーム上で入力した情報をCGIで取得→確認画面を表示→問題無ければメールフォームとして送信,となっています。 このスクリプト上で問題となっているのが,textareaでは自動的に改行処理(wrap=softと同じ?xhtmlで書いているので,wrap属性は指定していません。)するときに入力される改行コードと,入力者が意図的に入力する改行コードを判別出来ないということです。自動的に挿入される\n(0x0A)を削除しようとスクリプト上で, $text =~s/\r\n/\n/g; $text =~s/\r/\n/g; $text =~s/\n//g; と入れたところ,全ての改行コードが変換処理されてしまい,入力者が意図的に入れた改行コードまで処理されてしまいます。 スクリプト上,もしくはxhtmlと組み合わせて,自動的に挿入される改行コードだけを消去して,意図的に入力した改行コードだけを残す処理は出来ないものでしょうか? phpなどを使うと出来るようですが,ある程度perlのcgiで作成してしまったので,このままで出来ればと思っています。よろしくお願いします。

  • 改行コードを保存できない。

    <textarea wrap="hard" name="sentence" rows="3" cols="30"></textarea> このフォームで、入力したデータは、 PostgreSQLのテーブルに保存されるように構成しました。 フィールドは、"text"型です。 いざそれを、phpでHTMLに呼び出すと、改行文字は無視されます。 実際に、データベースを開くと、その値はこのようになっていました。 "ああああ・・あああ・・・・ああ" 改行コードはどうやら、"・"2個を改行1つと扱って保存しているようでした。 phpで、・・を含む値をHTML呼び出す時、 ・・を<BR>として呼び出して、改行してしまう技はないでしょうか?

  • POSTによる改行を含む文字列の受け渡し

    test1.php内のformのテキストエリア(textarea)のデータをPOSTによってtest2.phpへ送りたいのですが、改行がうまく転送できないか、あるいはうまく表示できていないため、外観上改行されているように見えません。 たとえば、test1.phpのテキストエリアで 「 あいうえお かきくけこ 」 と入力して、それをtest2.phpに送って表示させると、 「 あいうえお かきくけこ 」 と表示されます。 どうすれば改行しているように見せることができるのでしょうか?

    • ベストアンサー
    • PHP
  • 改行データPOSTできない

    mysql+php+htmlで作ってるんですが、POST後のページで改行が反映されません。 -------------------------------- 111.php -------------------------------- - 省略 - <body> <form action="222.php" method="post"> <input type="hidden" name="data2" value=<?php echo "$data1";?>> <input type="submit" value="編集"> </body> - 省略 - -------------------------------- 222.php -------------------------------- --省略-- <?php $data2 = $_POST['data2']; ?> <form> <textarea cols="80" rows="20" name="test"><? echo "$data2"; ?></textarea> </form> --省略-- -------------------------------- これだと222.phpで1行だけしか表示されません。変数に入れれないのでしょうか? お手数ですが、ご教示お願いします。 ちなみに111.phpの方も textarea にすると正常に値が渡せます。 でも表示したくないのでイヤです。 (急いで入力したので、タイプミス&コピペミスっぽいのは無視してくださいm(_ _)m)

    • ベストアンサー
    • PHP