Symfoware Server WebDBtoolsユーザーズガイド - FUJITSU -
目次 索引 前ページ次ページ

第2部 使用手引き編> 第6章 データベース連携> 6.6 拡張タグ使用例

6.6.3 データ検索:複数検索

■処理の内容

チェックボックスで選択された複数の項目を、データベースから検索し、その結果を表示します。

■サンプルプログラム

checkbox.html
・・・
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="checkbox_fmt.html">
<INPUT TYPE="CHECKBOX" NAME="Area" VALUE="地域 LIKE '北海道・東北'">北海道・東北<BR>
<INPUT TYPE="CHECKBOX" NAME="Area" VALUE="地域 LIKE '中部・北陸'">中部・北陸<BR>
<INPUT TYPE="CHECKBOX" NAME="Area" VALUE="地域 LIKE '関東'">関東<BR>
<INPUT TYPE="CHECKBOX" NAME="Area" VALUE="地域 LIKE '近畿'">近畿<BR>
<INPUT TYPE="CHECKBOX" NAME="Area" VALUE="地域 LIKE '中国・四国'">中国・四国<BR>
<INPUT TYPE="CHECKBOX" NAME="Area" VALUE="地域 LIKE '九州・沖縄'">九州・沖縄<BR> 
<INPUT TYPE="SUBMIT" VALUE="検索">
</FORM>                                                   (1)
・・・

(1) 検索項目の指定
チェックボックスでチェックされた項目を“Area”に設定し、checkbox_fmt.html に引き継ぎます。複数項目がチェックされた場合は、“Area”にリストの形式で格納されます。

checkbox_fmt.html
・・・
<!SETVAR cond 'join(" OR ", QUERY::Area)'>      (2)
<!DO "SELECT 名称, 地域, 所在地, 電話番号 FROM WL_SCHEMA.保養所
      WHERE $cond" RESULT=rslt>                (3)
<TABLE BORDER=1>
    <TR>
    <TD>名称</TD>
    <TD>地域</TD>
    <TD>所在地</TD>
    <TD>電話番号</TD>
    </TR> 
    <!FOREACH rslt t>
    <TR>
        <TD><!HREPLACE 't{名称}'></TD>
        <TD><!HREPLACE 't{地域}'></TD>
        <TD><!HREPLACE 't{所在地}'></TD>
        <TD><!HREPLACE 't{電話番号}'></TD>
    </TR> 
    <!/FOREACH>                               (4)
</TABLE>
・・・

(2) 検索対象データの検索可能形式への変換
checkbox.html から引き継いだ“Area”がリスト形式の場合、そのままではデータベースの検索に用いることができません。この場合、リスト関数の“join”を使用して1つの文字列に変換し、データベースが検索できる形式に整形します。
サンプルプログラムでは、“Area”の各要素の間に“OR”を挿入し、変換した結果を“cond”に設定します。
(3) データベースの検索
データベースから“cond”に設定された文字列に合致するもの検索し、結果を“rslt”に格納します。
(4) 検索結果の表示
検索した情報の名称、地域、所在地、電話番号をすべて表示します。

■解説

checkbox.html で検索する項目をチェックして“Area”に格納し、データベースを検索するためにcheckbox_fmt.html へ処理を引き継ぎます。
checkbox_fmt.html では、checkbox.html から引き継いだ“Area”をデータベースで検索できる形に変更します。これを検索対象としてデータベースを検索し、結果を表示します。

チェックボックスなどを利用して検索条件を設定するときに、複数の項目が選択された場合、各項目は変数にリストの要素として格納されます。この場合、リスト関数の“join”を利用して1つの文字列に変換するなど、データベースが検索できる形式に変換することが必要です。

目次 索引 前ページ次ページ

All Rights Reserved, Copyright(C) 富士通株式会社 2005