2017-09-25 17 views
0

私はxsl(ver = 1.0)で次のフォーム(チェックボックス)を生成しています。私は結果に含まれるオプションが1つしかないドロップダウンメニューで結果を生成することができます。チェックボックスを使用すると、複数のチェックボックスをチェックすると結果が表示されますか?たとえばときに、ユーザーのチェック部門1、部門2、私はアイテムをカウントし、(下)のような行を表示する必要がある、と地域1:XSL:XSLTで結果を取得するためのチェックボックスを使用

Search results for: department 1 & 2, region 1 
Total: 3 items 
department 1: 1 item 
department 2: 2 items 
region 1: 2 items 

lines: 
This is line 1 of description of item 1. 
This is line 2 of description of item 1. 
This is line 3 of description of item 1. 
This is line 1 of description of item 2. 
This is line 2 of description of item 2. 
This is line 3 of description of item 2. 
This is line 1 of description of item 3. 
This is line 2 of description of item 3. 
This is line 3 of description of item 3. 

ここでは私のXSLが生成する形式は次のとおりです。

<form action method="post"> 
<input type="checkbox" name="dept" value="1">1 
<input type="checkbox" name="dept" value="2">2 
<input type="checkbox" name="region" value="region1">Region1 
<input type="checkbox" name="region" value="region2">Region2 
<input type="checkbox" name="category" value="category1">Category1 
<input type="checkbox" name="category" value="category2">Category2 
<input type="text"> 
<input type="submit" value="SUBMIT"> 
</form> 
このような

XMLルック:

<?xml version="1.0" encoding="UTF-8"?> 
<items> 
    <item> 
     <number>1</number> 
     <dept>1</dept> 
     <region>region1</region> 
     <category>category1</category> 
     <description> 
      <pp> 
       <line> 
        This is line 1 of description of item 1. 
       </line> 
       <line> 
        This is line 2 of description of item 1. 
       </line> 
       <line> 
        This is line 3 of description of item 1. 
       </line> 
      </pp> 
     </description> 
    </item> 
    <item> 
     <number>2</number> 
     <dept>2</dept> 
     <region>region1</region> 
     <category>category2</category> 
     <description> 
      <pp> 
       <line> 
        This is line 1 of description of item 2. 
       </line> 
       <line> 
        This is line 2 of description of item 2. 
       </line> 
       <line> 
        This is line 3 of description of item 2. 
       </line> 
      </pp> 
     </description> 
    </item> 
    <item> 
     <number>3</number> 
     <dept>2</dept> 
     <region>region2</region> 
     <category>category2</category> 
     <description> 
      <pp> 
       <line> 
        This is line 1 of description of item 3. 
       </line> 
       <line> 
        This is line 2 of description of item 3. 
       </line> 
       <line> 
        This is line 3 of description of item 3. 
       </line> 
      </pp> 
     </description> 
    </item> 
</items> 
+0

。 –

+0

@MatthewWhitedあなたはどんな例を提供してもいいですか? –

答えて

0

伝統的に、あなたはブラウザ内(のではなく、サーバーに戻って結果を掲示)(例えば、チェックボックスをクリックするなど)、ユーザイベントを処理する場合いくつかのJavascriptイベントハンドラを記述します。

最近、ブラウザで実行されるXSLT 3.0プロセッサであるSaxon-JSを使用して、XSLTにすべてのイベント処理を記述し、インタラクティブにする拡張機能を提供する別の方法があります。あなたは(ないテスト)このようなコードの何かを記述します。

ソリューションのちょうどスケッチですが、あなたはこのルートを下ることにした場合、我々はあなたがそれを肉付け手助けさせていただきます
<xsl:template match="input[@type='checkbox']" mode="ixsl:click"> 
    <xsl:result-document href="#search-results-area"> 
    <xsl:variable name="checkedBoxes" 
     select="../input[@type='checkbox'][ixsl:get('checked')]"/> 
    <xsl:variable name="selectedItems" select="ixsl:source()//item[ 
     region = $checkedBoxes[@name='region']/@value 
     and number = $checkedBoxes[@name='number']/@value 
     and dept = $checkedBoxes[@name='dept']/@value]"/> 
    <p>Search results for ...</p> 
    <xsl:apply-templates select="$selectedItems"/> 
    </xsl:result-document> 
</xsl:template> 

<xsl:template match="item"> 
    <xsl:for-each select="description/p/line"> 
    <p><xsl:value-of select="."/></p> 
    </xsl:for-each> 
</xsl:template> 

。サクソン-JSに

詳しい情報はこちらです:javascriptのは何のためにあるのかだ

http://www.saxonica.com/saxon-js/index.xml

関連する問題