• ベストアンサー

表示を一覧表形式にしたいのですが組みかたを教えてください。

検索データを一覧表で表示したく、いろいろやってみたのですができません。なぜできないのか、どこがいけないのかおしえていただきたいのですが・・・ 一応、一覧表で表示されていたスクリプトをお手本にやっていたのですが、知識がなさすぎてわかりません。よろしくおねがいします。 sub search { &header; print "<table border=1 cellspacing=1><tr>\n"; print "<th>情報提供者<th>ユーザ名<th>業務<th>顧客管理元<th>責任者<th>コメント</tr>\n"; # キーワード前準備 $in{'word'} =~ s/ / /g; @word = split(/\s+/, $in{'word'}); open(IN,"$logfile") || &error("Open Error : $logfile"); $i=0; while (<IN>) { ($no,$sub,$com,$p1,$p2,$p3,$p4) = split(/<>/); if ($in{'P1'} ne "99" && $in{'P1'} ne "$p1") { next; } if ($in{'P2'} ne "99" && $in{'P2'} ne "$p2") { next; } if ($in{'P3'} ne "99" && $in{'P3'} ne "$p3") { next; } if ($in{'P4'} ne "99" && $in{'P3'} ne "$p4") { next; } # キーワードマッチ $flag=1; foreach $key (@word) { if (index($_,$key) >= 0) { $flag=1; } else { $flag=0; last; } } if (!$flag) { next; } $i++; print "<td><b><a href=\"$script?mode=view&no=$no\">$sub</a></b></td>"; print "<td>$part1[$p1]</td><td>$part2[$p2]</td><td>$part3[$p3]</td><td>$part4[$p4]</td>"; print "<td><small>$com</small></td></tr>\n"; print "</table><P>\n"; } close(IN);

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

  • ベストアンサー
  • ryouchi
  • ベストアンサー率41% (52/125)
回答No.1

まず、何ができないのかを教えて貰えませんか? たとえば、どんなエラーがでるのか?など。 また、これはプログラムのサブルーチンの一部のようですね。 おそらく、FORM変数をwordの中にどっかでいれて、@wordの配列にいれて、Logファイルの中身と照合するってことをやっているのかしら? あと、サブルーチンなら、最後の行に}がいりますね。 close(IN); } ってかんじですね。

bori
質問者

お礼

再度、教えていただいた部分を見直していたら、できました!ヾ(@^▽^@) ありがとうございました。

bori
質問者

補足

質問の仕方が悪くてすいません。m(._.)m なにができないのかといいますと、一覧表で表示したいのに、 表の項目の横に検索結果の1件目が並んで表示されるうえに、2件目以降の結果は、表からはみ出て表示されるのです。 □・・・項目(表形式) ■・・・結果1(表形式) △・・・結果2(ただの文字列のみ) □□□□■■■■ △△△△ △△△△ △△△△ といったような感じで表示されるのです。これを下図のような表示にしたいのです。 □□□□ ■■■■ ▲▲▲▲(表のなかにおさまるように) ▲▲▲▲

その他の回答 (1)

  • imeruchan
  • ベストアンサー率43% (45/104)
回答No.2

質問に書かれているスクリプト、最後にテーブルに書き出す部分ですが、<tr>が抜けてますよ。 $i++; print "<tr><td>... ~~~~ このようになるのでは?

bori
質問者

お礼

ありがとうございました。おかげで、項目と1件目はちゃんと改行されて表示されました。 (。・_・。)ノが、やはり2件目以降の検索結果は、表形式では表示されません。また、お気づきの点があれば、教えてください。

関連するQ&A