我有一个 HTML 选择下拉菜单:
<select name="sortby">
<option value=""></option>
<option value="onenightavg">Price: High to Low</option>
<option value="number_bedrooms">Bedrooms: High to Low</option>
<option value="number_bathrooms">Bathrooms: High to Low</option>
<option value="max_sleeps">Sleeps: High to Low</option>
</select>
当用户提交它时,它会向页面发送一个 URL 查询字符串,并将其添加到页面的 XML 中:
<querystring>
<sortby>number_bathrooms</sortby>
</querystring>
然后我在我的 XSLT 中设置了一个 XSL 变量:
<xsl:variable name="sortby">
<xsl:choose>
<xsl:when test="/querystring/sortby != ''">
<xsl:value-of select="/querystring/sortby" />
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="'onenightavg'" />
</xsl:otherwise>
</xsl:choose>
</xsl:variable>
在上面的 XST 中,我设置了一个名为 $sortby 的变量并测试查询字符串是否存在。如果它确实存在,则将变量设置为其值。如果它不存在,则默认为“onenightavg”。
然后我在排序中使用该变量:
<xsl:sort data-type="number" order="ascending" select="$sortby" />
这行不通。它不会对我的项目进行排序,但是当我将选择硬编码为这样的任何一个值时,它可以工作:
<xsl:sort data-type="number" order="ascending" select="onenightavg" />
我希望能够根据下拉列表中所选选项的值动态排序。