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

第3章 データベース連携> 3.6 拡張タグの使用例

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