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

|
3.6.5 データ検索:絞込み検索

■処理の内容
指定された文字列をデータベースから検索し、検索結果を表示します。検索結果が不十分の場合、絞込み条件を設定して再度検索し、検索結果を表示します。
■サンプルプログラム
demo.html
・・・
<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">
製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>
<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">
</FORM>
・・・ |
demo_fmt.html
・・・
<!IF '!defined(cond) '>
<!UNDEFVAR cond>
<!/IF>
<!VAR cond SCOPE="GLOBAL" VALUE="製品名 LIKE '%$QUERY::Name1%'">
<!DO "SELECT 製品名,カテゴリ,機能,型番 FROM WL_SCHEMA.製品表
WHERE 製品名 LIKE '%$QUERY::Name1%'" RESULT=rslt ONERROR="ERROR1">
・・・
<FORM ACTION="$SYSTEM::FMTR" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="shibori_fmt.html">
製品名:<INPUT TYPE="TEXT" NAME="Name1"><BR>
<INPUT TYPE="SUBMIT" VALUE="さらに検索">
</FORM> (1)
・・・ |
(1) 絞込み条件の設定
絞込み条件として、新しく追加された文字列を“Name1”に設定し、shibori_fmt.html に引き継ぎます。
shibori_fmt.html
<!SETVAR cond "製品名 LIKE '%$QUERY::Name1%' AND $cond"> (2)
<!DO "SELECT 製品名,カテゴリ,型番 FROM WL_SCHEMA.製品表 WHERE $cond" RESULT=rslt> (3)
<TABLE BORDER=1>
<TR>
<TD>製品名</TD>
<TD>カテゴリ</TD>
<TD>型番</TD>
</TR>
<!FOREACH rslt t>
<TR>
<TD>
<!SETVAR vName 'URLencode(t{製品名}) '>
<A HREF="$SYSTEM::FMTR?WIT_html=media.html&Name=$vName">
<!HREPLACE 't{製品名}'></A>
</TD>
<TD><!HREPLACE 't{カテゴリ}'></TD>
<TD><!HREPLACE 't{型番}'></TD>
</TR>
<!/FOREACH>
</TABLE> (4) |
(2) 検索条件の設定
現在の検索文字列“cond”と新しい検索文字列“Name1”をANDで関連付けして、再度“cond”として設定します。
(3) データベースの検索
“cond”に設定された文字列条件としてデータベースを検索し、結果を“rslt”に格納します。
(4) 検索結果の表示
検索した情報の製品名、カテゴリ、型番をすべて表示します。
■解説
demo_fmt.html から検索に利用した“cond”と、絞込み検索のために、新しく設定された文字列を“Name”に格納し、データベースを検索するためにshibori_fmt.html へ処理を引き継ぎます。shibori_fmt.html では、demo_fmt.html から引き継いだ“cond”と“Name1”の2つの文字列でデータベースを検索し、結果を表示します。

現在の検索文字列と新しく設定した文字列を“AND”で結ぶことで、絞込み検索を行うことができます。
All Rights Reserved, Copyright(C) 富士通株式会社 2007