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

|
3.6.11 共有セション

■処理の内容
共有セションのアプリケーションの例を説明します。
■サンプルプログラム
サンプルプログラムは、SolarisおよびLinuxの場合の例です。Windows(R) 2000またはWindows Server(R) 2003の場合は、“Windows(R) 2000またはWindows Server(R) 2003の場合の設定方法”を参照してください。
WebScriptの起動時に、public.envが参照されます。
public.env(アプリケーション環境パラメタ)
・・・
DBName = SAMPLE
userid = XXXXXXXX
passwd = XXXXXXXX
formatDir = /opt/FJSVsymwd/sample/format_public
・・・ |
start.html
・・・
<A HREF="login.html">個別セション</A><BR>
<A HREF="demo_cookie.html">共有セション</A><BR>
・・・ |
demo_cookie.html
・・・
<FORM ACTION="/cgi-bin/wit_fmtr" METHOD="POST">
<INPUT TYPE="HIDDEN" NAME="WIT_html" VALUE="demo_fmt.html">
製品名:<INPUT TYPE="TEXT" NAME="Name"><BR>
<INPUT TYPE="SUBMIT" NAME="Search" VALUE="検索">
</FORM>
・・・ |
demo_fmt.html
・・・
<!SETVAR cond "製品名 LIKE '%$QUERY::Name%'">
<!SETCOOKIE prev_cond cond> (1)
<!DO "SELECT 製品名,カテゴリ,機能,型番 FROM WL_SCHEMA.製品表 WHERE $cond" RESULT=rslt>
<TABLE BORDER=1>
<TR>
<TD>製品名</TD>
<TD>カテゴリ</TD>
<TD>型番</TD>
</TR>
<!FOREACH rslt t>
<TR>
<TD><!HREPLACE 't{製品名}'></TD>
<TD><!HREPLACE 't{カテゴリ}'></TD>
<TD><!HREPLACE 't{型番}'></TD>
</TR>
<!/FOREACH>
</TABLE>
・・・ |
(1) 絞込み検索に利用する文字列の準備
絞込み検索に使用する検索文字列を作成します。拡張タグの<!SETCOOKIE>を使用して、指定した文字列を“prev_cond”という名前のcookieに設定します。
shibori_fmt.html
・・・
<!SETVAR cond "製品名 LIKE '%$QUERY::Name%' AND $COOKIE::prev_cond">
<!SETCOOKIE prev_cond cond> (2)
<!DO "SELECT 製品名,カテゴリ,型番 FROM WL_SCHEMA.製品表 WHERE $cond" RESULT=rslt>
<TABLE BORDER=1>
<TR>
<TD>製品名</TD>
<TD>カテゴリ</TD>
<TD>型番</TD>
</TR>
<!FOREACH rslt t>
<TR>
<TD><!HREPLACE 't{製品名}'></TD>
<TD><!HREPLACE 't{カテゴリ}'></TD>
<TD><!HREPLACE 't{型番}'></TD>
</TR>
<!/FOREACH>
</TABLE>
・・・ |
(2) 絞込み検索の検索文字列の設定
絞込み検索を行うために、(1)で作成した検索文字列と、新しく指定された文字列を“AND”で結び、“cond”に格納します。
■解説
demo.html で指定された文字列を引き継ぎ、demo_fmt.html でデータベースの検索を行います。検索結果が不十分な場合、処理をshibori_fmt.html に引き継ぎ、絞込み検索を行いますが、共有セションの場合、グローバル変数を使用することができないため、フォーマットファイル間でデータのやり取りができません。
この場合、cookieを利用し、フォーマットファイル間で共通な変数として使用することができます。

共有セションを利用する場合、フォーマットファイル間ではグローバル変数を設定することができません。この場合に、解決方法として考えられるのが、cookieの使用です。
cookieもほかのシステム変数と同じように、“COOKIE::”と指定した名前を組み合わせて利用します。詳細は、“COOKIEパッケージ変数”を参照してください。
All Rights Reserved, Copyright(C) 富士通株式会社 2007