そのためにFORMのget送信にて絞り込みのためのmenu項目を送信するためのセレクトボックスを作成しようとしているのですが、当然言えば当然かもしれませんが、指定したmenu項目がエントリーの数分表示されてしまいます。
例)飲食店の紹介
店名:TITLE
カテゴリー:CATEGORY
■スキーマ:tenpo.design.xsl内
コード: 全て選択
<data name="CATEGORY" type="menu" caption="ジャンル" group="True">
<menuitem id="1">和食</menuitem>
<menuitem id="2">中華</menuitem>
<menuitem id="3">イタリアン</menuitem>
<menuitem id="4">フレンチ</menuitem>
</data>
コード: 全て選択
<form action="tenpolist.html" name="contact" id="contact" method="get" enctype="application/x-www-form-urlencoded" accept-charset="UTF-8" autocomplete="on">
<fieldset form="contact" name="tenpowrap">
<label form="contact" for="tenpo">ジャンルを選択:</label>
<select id="tenpo" name="tenpo">
<cmsd:entrylist name="tenpo" design="filter" navigation="on" rows="99">
<cmsd:param key="CATEGORY" />
</cmsd:entrylist>
</select>
</fieldset>
<input type="submit" class="submit" value="submit" />
</form>
送信されたURL:tenpolist.html?CATEGORY=2
コード: 全て選択
<?xml version="1.0" encoding="UTF-8" ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="yes" />
<xsl:template match="/entrylist">
<option value="">select...</option>
<xsl:for-each select="entry">
<!-- CATEGORY パラメータを$category変数に格納 -->
<xsl:variable name="category" select="//param[@key='CATEGORY']/@value" />
<xsl:if test="CATEGORY'=$category">
<option value="{CATEGORY}">
<xsl:attribute name="selected">selected</xsl:attribute>
<xsl:value-of select="CATEGORY/@label"" disable-output-escaping="yes" />
</option>
</xsl:if>
<xsl:if test="CATEGORY'!=$category">
<option value="{CATEGORY}">
<xsl:value-of select="CATEGORY/@label"" disable-output-escaping="yes" />
</option>
</xsl:if>
</xsl:for-each>
</xsl:template>
</xsl:stylesheet>
(※エントリーが10件あった場合)
コード: 全て選択
<select id="tenpo" name="tenpo">
<option value="1">和食</option>
<option value="1">和食</option>
<option value="2">中華</option>
<option value="1">和食</option>
<option value="1">和食</option>
<option value="2">中華</option>
<option value="2">中華</option>
<option value="1">和食</option>
<option value="3">イタリアン</option>
<option value="1">和食</option>
</select>
コード: 全て選択
<select id="tenpo" name="tenpo">
<option value="1">和食</option>
<option value="2">中華</option>
<option value="3">イタリアン</option>
<option value="3">フレンチ</option>
</select>