xsl的问题请假

qozm 2003-09-12 11:01:51
假设第一队有3个班,第二队有5个班,第三队有8个班,
在xml中得数据为
<xml>
<row name="第一队" number="3">
<row name="第二队" number="5">
<row name="第三队" number="8">
</xml>
我用xsl来有两个下拉列表,
第一个下拉列表如下

<select>
<xsl:for-each select="/xml/row">
<option>
<xsl:attribute name="value"><xsl:value-of select="@number"/></xsl:attribute>
<xsl:value-of select="@name"/><xsl:value-of select="@number"/>个班
</option>
</xsl:for-each>
</select>

现在我要在第二个下拉列表中根据第一个列表的 @number 数字来决定其 <option/>中的选项,
如果@number为3,则第二个列表中选项为
<option>1</option>
<option>2</option>
<option>3</option>
如果@number为5,则第二个列表中选项为
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>

我在xsl中该怎么写才能实现根据第一个列表的选择来动态改变第二个列表中的内容?

...全文
45 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Magicloud 2003-09-12
  • 打赏
  • 举报
回复
javascript
lanshantutu 2003-09-12
  • 打赏
  • 举报
回复
假如两个select的名字分别为LIST1、LIST2
==>
......
<script type="text/javascript" language="javascript">
<xsl:comment>
<![CDATA[
var arr=new Array;
var opts=null;
var opts2=null;
arr[0]=[['1'],['2'],['3']];
arr[1]=[['1'],['2'],['3'],['4'],['5']];

function addOption(key){
if(key>arr.length) key=0;
var arrLen=arr[key].length;
for(var i=0;i<arrLen;i++){
var o=new Option(arr[key][i][0],arr[key][i][1],true,false);
opts2.options[opts2.options.length]=o;
}
}

function delOption(){
while(opts2.length>0)
opts2.remove(0);
}

function toChange(){
var key=0;
key=opts[opts.selectedIndex].value;
delOption();
addOption(key);
}

function init(){
opts=document.all.LIST1;
opts2=document.all.LIST2;
opts.onchange=toChange;
addOption(0);

]]>
</xsl:comment>
</script>
......

<select name="LIST1">
<xsl:for-each select="/xml/row">
<option>
<xsl:attribute name="value"><xsl:value-of select="@number"/></xsl:attribute>
<xsl:value-of select="@name"/><xsl:value-of select="@number"/>个班
</option>
</xsl:for-each>
</select>
......
<select name="LIST2"></select>

8,906

社区成员

发帖
与我相关
我的任务
社区描述
XML/XSL相关问题讨论专区
社区管理员
  • XML/XSL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧