電子書籍の厳選無料作品が豊富!

if文を利用してリストの表示をしようとしています。

ドロップダウンリストは
<SELECT name="type">
<OPTION value="all">指定しない </OPTION>
<OPTION value="1">タイプA系列</OPTION>
<OPTION value="2">タイプB系列</OPTION>
となっています。
データはチェックボックスで1か空白で保存されていて、A系列は「s_1」「s_2」、B系列は「s_3」「s_4」「s_5」にチェックが入っているかどうかを振り分けしたいんです。
なので、ドロップダウンリストで「タイプA系列」を選択したら「s_1」「s_2」に1が入っている物のみ表示するというものです。

現在のところこの形です。
if ($FORM{'type'} ne 'all') {
if ($FORM{'type'} eq '1'){
if ($s_7 || $s_8 eq 1) { ; } else { next; }
}else{
if ($s_9 || $s_10 || $s_11 eq 1) { ; } else { next; }
}
}
このようにやってみましたが全部表示されてしまいます。
どのように直したらOKでしょうか?
お願いします。

A 回答 (2件)

if($type eq 'all') {


 #全部表示
} elsif($type eq '1') {
 if ($s_1 or $s_2) {
  # 表示
 }
} elsif($type eq '2') {
 if ($s_3 or $s_4 or $s_5) {
  # 表示
 }
}

何のひねりもなく書いてみました。
インデントは全角スペースです。
#表示のところにフラグを立てて後で表示させるのもあり。

IF文しかないので、表示をどうやってるのかわからんけども。
    • good
    • 0

ちょっと説明が分かりにくいので何ともいえないのですが


cgiでWEBページを作られているのですよね?

ドロップダウンリストのあるページと、チェックボックスのあるページは別ですか?
もし同じであれば、同ページでしかもPOSTしない状態でのデータの取得はcgiではできません。

JavaScriptを使って実装するのが一番よいと思います。

この回答への補足

あ、説明が足らなくてすみません。
自分で登録して他の人が結果を見るという物です。
データベースになるんでしょうか?
で、自分が登録するページにはいくつかのチェックボックスが並んでいて、それぞれタイプA系列とタイプB系列に分かれるんです。

簡単に言うと、CD系とDVD系みたいなものでしょうか。
保存時に、これはCD-ROM、これはCD-R、これはDVD-ROM、これはDVD-RAM~というようにどれか1つにチェックを入れます。もちろんこれをファイルに保存ですね。
で、そのファイルを読み込み他の人に見せるときに1つ1つ分けると検索するのに手間になると思うのでCDとDVDの2つに分け、CD系列を選択するとCD-ROM.CD-R.CD-RW~が出力されるってのを実現させたいんです。

こんな説明でOKでしょうか?

補足日時:2005/11/18 12:17
    • good
    • 0

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