2

私がやりたいのは、2 つの select ステートメントを作成し、最初のステートメントで "onChange" イベントを使用して 2 番目の select ステートメントのオプションを変更するオプションが選択されている場合です。

ここに私がしようとしていることの良いデモがあります: http://www.w3.org/TR/WCAG20-TECHS/working-examples/SCR19/dynselect.html

対応するコード: http://www.w3.org/TR/WCAG20-TECHS/SCR19.html

ただし、配列を使用して select ステートメントのオプションを設定する代わりに、XML ドキュメントからデータを解析することをお勧めします。

XML Doc は次のようになります。

<inventory>
  <shoes>
    <item>
      <name>Chuck Taylor Converse</name>
      <size>11</size>
      <quantity>2</quantity>
    </item>
  </shoes>
</inventory>

私が考えているのは、XSL for-each ステートメントと Javascript 関数を使用して、2 番目の select ステートメントのオプションを変更することです。

//  Shows the name of each type of product from the XML doc
<select id="type" onchange="showProducts(this);">
  <xsl:for-each select="inventory/*">
    <option><xsl:value-of select="name(.)"/></option>
  </xsl:for-each>    
</select>

<select id="product">
</select>

私が立ち往生しているのは、Javascriptでこれを達成する方法を見つけようとしている. XML を配列に解析する必要がありますか? 私のもう 1 つのアイデアは、XSL ステートメントを使用して document.write を実行しようとすることでしたが、うまくいきませんでした。

何か案は?

4

1 に答える 1

0

XSLT サーバー側を適用することもできます。これは、jQuery を使用して、ページに直接挿入できる HTML フラグメントを JavaScript が既に受け取っていることを意味します。

$('#product').load('mysever/url_returning_the_html');

または、サーバーが未加工の XML を提供し、JavaScript を使用して XSLT を適用できます。これを行う方法はブラウザーによって異なります。例については、http://www.w3schools.com/xsl/xsl_client.aspを参照してください。

私の提案は、可能な限りサーバー側で変換を行い、JavaAcript コードに HTML (直接使用できる) または JSON (よりコンパクトで JavaScript での解析が容易) を提供することです。

于 2012-04-21T11:47:22.380 に答える