• 締切済み

$template->output();の時に 正しく出力されません。

HTML::Template $template->param に代入後 $template->output();の時に 正しく出力されません。 意図しない構造になって代入されます aa bb nn cc mm dd としたいなら abbbbbb みたいになります  普通に文字を代入すると  $template->output();で 正しく代入されるので いろいろ コードのせいかとおもい いろいろ変えてみても かわらないので、 もしかして HTML::Templateのせい? と思い。 代入する値に 自分で作ったphpと同じhtmlspecialchars で いれたところ 正常に 意図する形だけは 表示されました。 htmlを伏せると意味がないので困っています ひょっとして HTML::Templateは paramにいれる値に htmlタグがついているとただしく代入できないのでしょうか?

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

どんなテンプレートを使って どのように操作したのか補足してください

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

どういう入力をして、どんな出力がされたかが曖昧なので、 具体的に、どのようなテンプレートにどのような値をparamに入力したかを補足してください。 (問題部分のテンプレートとスクリプトのソースです) そのあたりが正確にわからないと、回答が難しいです。

noname#21216
質問者

お礼

htmlタグを代入すると動作が不安定なので htmlタグで誤動作されては困るので 使うのは避けることになりました。 昔phpで作った テンプレートクラスを移植して対応することにしました  どうも お騒がせしました。

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

関連するQ&A

  • エクセル リストアップ

    以下のような表があります。    1 2 3 4 5 aa 20 25 45 20 38 bb 16 98 45 78 20 cc 20 45 20 66 44 dd 44 20 13 20 89 この中から複数ある20(値)を検索し、 その位置を以下のようにリスト形式で 抽出できないでしょうか。 aa1 aa4 bb5 cc1 cc3 dd2 dd4 vlookup や match ではうまくいきません。 できれば関数でお願いします。

  • HTML::Templateのループと配列のハッシュの作成

    下記の?????の所にpushで配列のハッシュを作成しようと考えていましたが、うまくいきません。 下記のソース自体が的外れでしたら申し訳ございません。?????以外の場所も指摘して頂ければ幸いです。 よろしくお願い致します。 <TMPL_LOOP NAME="loop"> <TMPL_VAR NAME="one"><BR> <TMPL_VAR NAME="two"><BR> <TMPL_VAR NAME="three"><BR> </TMPL_LOOP> use HTML::Template; @data = ('aa<>ab<>ac','ba<>bb<>bc','ca<>cb<>cc'); foreach $xxx (@data) { my ($one,$two,$three) = split(/<>/,$xxx); ???????????????????? } my $template = HTML::Template->new(filename=>'sample.html'); $template->param(loop=>\@loop); print "Content-Type: text/html\n\n"; print $template->output;

    • ベストアンサー
    • Perl
  • HTML::Templateの初歩的な質問

    HTML::Templateを使用してサイトを構築しようとしてるのですが、うまくいきません。 例1のようにしたいのですが、どこが間違っているかを指摘していただきたく書き込ませて頂きました。 ちなみに例2ではうまく作動しています。 よろしくお願い致します。 サンプルコード ★sample.html★ <TMPL_LOOP name=arr> <p><TMPL_VAR name=val></p> </TMPL_LOOP> ★例1★ my $template = HTML::Template->new(filename => 'sample.html'); @arr = [ {val=>'1'},{val=>'2'},{val=>'3'} ]; $template->param(arr => \@arr); print "Content-Type: text/html\n\n"; print $template->output; ★例2★ my $template = HTML::Template->new(filename => 'sample.html'); $template->param(arr => [ {val=>'1'},{val=>'2'},{val=>'3'} ] ); print "Content-Type: text/html\n\n"; print $template->output;

    • ベストアンサー
    • Perl
  • 変数に改行を含む文字列を代入

    変数に改行を含む文字列を代入したいです。 具体的には echo $KAIGYO AA BB CC DD となるような $KAIGYOを作りたいです。 どのようにしたらよいでしょうか?

  • サブルーチンの返値に配列のハッシュ

    いつもお世話になっております。 HTML::Templateを使用する為、サブルーチンの返値に配列のハッシュを入れたいと思っていますが、うまくいきません。 また、myの使い方が分からず、返値までの方法も若干気になります。 よろしくお願い致します。 use HTML::Template; @loop = &loop_make('aa<>ab<>ac','ba<>bb<>bc','ca<>cb<>cc'); my $template = HTML::Template->new(filename=>'sample.html'); $template->param(loop=>\@loop); print "Content-Type: text/html\n\n"; print $template->output; exit; sub loop_make{ @aaa = (); foreach $xxx (@_) { ($one,$two,$three) = split(/<>/,$xxx); push @loop, { one => $one, two => $two, three => $three }; } return \@aaa; }

  • 条件成立時に列Cの値を列Aにコピーしたい

    同一行の列Bの値が、ある値(後述例の場合、"○")と完全一致のとき、 列Cの値を列Aにコピーさせたいのですが、マクロでどのようにループを 組むか教えてください。 Excelのバージョンは2007です。 マクロ実行前 <列A>   <列B>   <列C> 項目A    項目B    項目C ああああ          AA いい     ○      BB ううう           CC ええええ   ○      DD お             EE マクロ実行後 <列A>   <列B>   <列C> 項目A    項目B    項目C ああああ          AA BB     ○      BB ううう           CC DD     ○      DD お             EE

  • 同じレコード単位で纏めて、違うレコードとの間に行挿入をしたい。

    同じレコード単位で纏めて、違うレコードとの間に行挿入をしたい。 A列~D列まで入力されて1000行あります。 A列を基準にソート済みなので以下のようになります。   A列  B列 C列 D列 A1 123   AA  BB  CC A2 123   DD  BB  CC A3 123   DD  EE  CC  A4 456   FF  GG  HH A5 456   JJ  KK  CC A6 789   JJ  LL  MM A7 789   NN  PP  QQ A8 789   RR  PP  CC これでA列の値が相違する場合そこに空白行を挿入したいです。   A列  B列 C列 D列 A1 123   AA  BB  CC A2 123   DD  BB  CC A3 123   DD  EE  CC  A4 A5 456   FF  GG  HH A6 456   JJ  KK  CC A7 A8 789   JJ  LL  MM A9 789   NN  PP  QQ A10 789   RR  PP  CC これを1000行手作業で行うのは大変なので一括で行いたいです。 方法はありますでしょうか? お願いします。

  • Excelで行を切り貼りをすると上書きされてしまうのでしょうか?

    5行ある下2行を切り取って、1行目に移動したいのですが、 AA BB CC DD EE ↓こうならず、 DD EE AA BB CC ↓こうなります。 DD EE CC 上書きされるようです。 行のコピー&ペーストは挿入されないのでしょうか?

  • SQL構文を手助けしてください

    (1)のようなテーブルデータを(2)のように表示したいと思います。 AA,BB,CC,DD,EEは列名としてください。 (1) AA BB CC DD EE __________________________ 00 01 2004/01/01 XX YY 01 00 2004/01/01 XE YD 01 00 2004/01/05 XZ YZ 02 01 2004/01/10 X2 YE 02 02 2004/01/05 XW YI 02 02 2004/01/06 XF YL (2) AA BB CC DD EE __________________________ 00 01 2004/01/01 XX YY 01 00 2004/01/05 XZ YZ 02 01 2004/01/10 X2 YE 02 02 2004/01/06 XF YL <条件> AAとBBでキーを作り、CCのMAXの該当レコードを表示したい。 SELECT AA,BB,MAX(CC),DD,EE FROM TEST_TABLE GROUP BY AA,BB というような感じかなと思ったのですが、「GROUP BY の式ではありません」と怒られてしまいます。 どなたか簡単なやり方をご存知で無いでしょうか?

  • select boxで指定した箇所に飛ぶ方法

    formで選んだ箇所に単純にaタグで飛ばす方法はあるでしょうか。 <form method="??" action=""> <select name="abc"> <option value="aa"><a href="aa">aa</a></option> <option value="bb"><a href="bb">bb</a></option> <option value="cc"><a href="cc">cc</a></option> <option value="dd"><a href="dd">dd</a></option> <option value="ee"><a href="ee">ee</a></option> </select> <input type="submit" value="そこに飛ぶ"> </form> submitを押すとそこのaタグに飛ばすようにしたいのですが。 html初心者で困っております。 よろしくお願いします。

    • ベストアンサー
    • HTML