処理の内容
指定された文字列をデータベースから検索し、検索結果を表示します。検索結果が不十分の場合、絞込み条件を設定して再度検索し、検索結果を表示します。
サンプルプログラム
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”で結ぶことで、絞込み検索を行うことができます。