データベース検索のperlをカスタマイズ中です。
ユーザが入力したものを、検索条件のひとつにしたいのですが、表示されません。
インプットしたものはlogファイルに書き込まれるので、それを開いて反映させればいいのだろうということまでは、なんとかわかるのですが、どのように表記していいのか・・・今はない知恵を絞ってこのように表記しているのですが。

if (!open(FD,"$logfile")) { &error(0); }
@lines = <FD>; $cnt = @lines;
close(FD);

print "<select name=P2 >\n";
print "<option value=\"0\" selected>指定なし\n";
$i =0;
foreach $line (@lines) {
($no,$sub,$com1,$com2,$com3,$p1,$p2,$p3,$p4) = split(/\,/,$line);
chop;
if ($p2 ne '') {
$i++;
$p2s{($p2)[0]}++; $n++;
}
}
foreach (keys %p2s) {
print "<option value=\"$_\">$_\n"; }
print "</select></td>\n";

このQ&Aに関連する最新のQ&A

A 回答 (2件)

えと。


ユーザの入力したものはlogファイルに書き込まれていて、
その形式は
($no,$sub,$com1,$com2,$com3,$p1,$p2,$p3,$p4)
を「,」で区切ったものなんですね。
大まかなやりたいことが書いてあるのは大まかな方針が立つので
とてもよいことです。

んで、細かく最終的にやりたいことも、もう少し書いてあると
助かるんで補足してください。
(ていうか最初からそこまで書いてあるほうがいいですよ。
表示されません。じゃ参考にならないです)

log.txt-----------------
1,s,c1,c2,c3,p1,p2_1,p3,p4
2,s,c1,c2,c3,p1,p2_2,p3,p4
3,s,c1,c2,c3,p1,,p3,p4
4,s,c1,c2,c3,p1,p2_4,p3,p4
------------------------
みたいな入力をどうしたいですか?
------------------------
<option value="p2_1">p2_1
<option value="p2_2">p2_2
<option value="p2_4">p2_4
------------------------
たとえば、上のようになればいいだけなら、
boriさんのプログラムでも動いているようですよ。:)
現在のプログラムがどんな出力をしているのかは調べましたか?

この回答への補足

すいません、説明不足で・・・
出力を確認すると、エラー表示がでるのです。

■ 業 務
Content-type: text/html

ERROR !
0

というふうに。■業務というのが、いわゆるp2の中身というか、今回表示させたいものなのですが・・・このタイトルの下にプルダウン形式で入力したものを表示させて、検索キーのひとつにしたいのです。
したいことは、y_okuさんが理解してくださっているとおりです。
よろしくお願いします。

補足日時:2001/02/13 11:24
    • good
    • 0
この回答へのお礼

補足などもしましたが、「できてますよ」のひとことを信じていろいろ試して
while(<IN>){
を使ったらできるようになりました。
ありがとうございました。

お礼日時:2001/02/19 13:10

その 「ERROR!」という表示が、1行目にある「&error(0);」によるものであるとすれば、ファイルが開けてないんでしょうね。

spell miss とかないですか?

この回答への補足

ええっと、その後いろいろいじっていたら、どうも表示した場所がわるかったらしくエラー表示はでなくなりました。(^^ゞ
しかし、やはり、プルダウンメニューには、opution value=0の指定なしという表示しかされません。せめて、logファイルを読み込んでいるのかどうかの確認がとれればとも思います。
よろしくお願いします。

補足日時:2001/02/13 15:28
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


このカテゴリの人気Q&Aランキング

おすすめ情報