 |
表示・検索
|
 |
このスクリプトは与えられた条件に適合するデーターをデーターベースから摘出して表示するスタイルにしてあります。表示させるフォーマット(アドレス)は以下の通りです。
profile.cgi?key=【摘出キーワード】&label=【検索対象の項目】&tpl=【利用するデザインテンプレートファイル】&type=【検索スタイル】&view=【表示順】&width=【全体の横幅】&hor=【1行に表示する列数】&max=【1ページに表示する行数】
profile.cgi の次に ? を書き、各値の指定を書き連ねます。各値同士は & でつなぎます。順序は問いません。
key値:
ここで与えられた値(キーワード)を含むデーターを摘出します。半角区切りで複数の文字列をキーワードとして扱うことが出来ます。type=all
を指定した場合はkey値を省略できます。また、key値が省略されている場合には全件表示を行います。
なお、アルファベットの大文字小文字は区別せず検索します。
label値:
key値で与えられた文字列を検索する際に、どの項目に対して検索をするか指定します。指定の方法は項目番号(数字)で行います。label値を指定しなかった場合、全ての項目が検索対象となります。
tpl値:
どのデザインテンプレートファイルを使ってページを表示するか指定します。指定の方法はファイル名(拡張子を除く)で行います。例えば、view.html
を利用して表示する場合はtpl=viewと指定します。省略した場合はview.htmlが使用されます。
type値:
検索スタイルを指定します。「or」を指定するとor検索、「and」を指定するとand検索、「eq」を指定すると完全一致検索になります。キーワードが複数ある場合はkey値を半角区切りで指定しますが、完全一致検索時には複数キーワードを設定することはできません。
なお、ここでallを指定した場合は全件表示となります。また、省略した場合はor
検索になります。
view値:
摘出結果を表示する順番を指定します。何も指定しない場合はデーターベースの登録順に、rvsを指定した場合はその逆となり新着順で表示されます。
hor値:
処理結果を表示する際の、1行に表示する列数です。省略した場合は1が指定されます。通常は、デザインテンプレートファイルのデザインにあわせて指定します。
max値:
処理結果を表示する際の、1ページに表示する行数です。省略した場合は初期設定値が使われます。
width値:
全体の横幅を指定します。特に指定する必要はありませんが、デザイン的に固定したい場合は利用して下さい。省略した場合は初期設定値が使われます。
例1)
登録されているデーターを所属別に表示したい場合、まずは「所属」の項目番号を管理メニューの項目編集から確認します。所属の項目が7番目の場合、
profile.cgi?key=営業部&label=7&hor=2&max=5&tpl=view
というリンクを使います。すると、7番目の項目(=「所属」の項目)に「営業部」が含まれているデーターだけ、つまり、営業部に所属するデーターだけが、横2列縦5行で、view.html
のデザインで摘出表示されます。
特定の条件に当てはまるデーターを抜き出して表示する際にはこのようなリンクを使うのが便利です。
例2)
次は、項目を限定せずに全ての項目に対して検索を行うリンクを設定してみましょう。例えば、「田中」という文字がデーターに含まれているものを摘出表示するには、
profile.cgi?key=田中&hor=1&max=3&tpl=small
というリンクを使います。すると、全項目のうちのいずれかに「田中」という文字が含まれているデーター全てを、横2列縦3行で、small
のデザインを使って摘出表示することになります。
特定の文字・事柄に関連したデーターを抜き出して表示したい場合にはこのようなリンクを使うと便利です。
例3)
次は、フォームタグを利用した検索システムとしての利用法を考えてみましょう。ユーザーに任意の値をinputタグで入力させ、その他の項目はinputタグのhidden属性で指定しておくことで、柔軟な検索システムを構築させることが出来ます。
-- a) データーベースから名前だけを対象に検索する例
「名前」の項目が1番目の場合、inputタグのhidden属性を利用してlabel値に1を指定します。その他の値(label値やhor値など)も同様にinputタグのhidden属性を利用して指定します。検索のキーワードとなるkey値はフォームを使ってユーザーに入力させるようにします。
タグは
<form method="post" action="profile.cgi">
名前検索
<input type="text" name="key" size="20">
<!-- key値(検索文字)を入力 -->
<input type="hidden" name="label" value="1">
<!-- 検索対象項目に1番目の項目を指定。 -->
<input type="hidden" name="hor" value="1">
<!-- 1行に1列表示。 -->
<input type="hidden" name="max" value="5">
<!-- 1ページに5行で表示。 -->
<input type="hidden" name="tpl" value="view">
<!-- 表示に使うテンプレートファイルにview.htmlファイルを指定。 -->
<input type="submit" value="検索">
</form> |
となります。
-- b) 全項目に対して AND・OR検索する例
key値とtype値を、フォームを使ってユーザーに任意に入力させ、その他の値(label値やhor値など)は、inputタグのhidden属性で指定します。全項目への検索のため、項目の指定(label値の指定)は行いません。
タグは
<form method="post" action="profile.cgi">
検索キーワード(キーワード同士は半角スペースで区切って下さい)
<input type="text" name="key" size="20">
<!-- key値(検索文字)を入力 -->
検索スタイル
<select name="type">
<option value="and" selected>and</option>
<option value="or">or</option>
</select>
<!-- type値(検索スタイル)を選択 -->
<input type="hidden" name="hor" value="1">
<!-- 1行に1列表示。 -->
<input type="hidden" name="max" value="5">
<!-- 1ページに5行で表示。 -->
<input type="hidden" name="tpl" value="view">
<!-- 表示に使うテンプレートファイルにview.htmlファイルを指定。 -->
<input type="submit" value="検索">
</form> |
となります。
例4)
記事のスクラップや、自分の作品といった、登録したデーターベース全てを表示させる場合も考えてみましょう。全件表示はtype値にallを指定すればいいわけですから、
profile.cgi?type=all&hor=1&max=5&tpl=view
という感じのリンクを使います。すると、登録されている全てのデーターを横1列縦5行で、view.html のデザインで表示します。また、
profile.cgi?type=all&hor=1&max=5&tpl=view&view=rvs
と、view値にrvsを指定すれば逆順(新着順)に表示できます。
このように、このスクリプトは非常に柔軟に作ってあるので、アイデア次第で様々に活用できます。
|