用xml填充下拉菜单,并以html形式查看结果
filling dropdown menu with xml and view the result in a html form
我有这个xml文件(charter.xml(:
<?xml version="1.0" encoding="utf-8"?>
<root>
<chapter>
<lesson_1>message 1</lesson_1>
<lesson_2>message 2</lesson_2>
<lesson_3>message 3</lesson_3>
<lesson_4>message 4</lesson_4>
<lesson_5>message 5</lesson_5>
<lesson_6>message 6</lesson_6>
<lesson_7>message 7</lesson_7>
<lesson_8>message 8</lesson_8>
<lesson_9>message 9</lesson_9>
<lesson_10>message 10</lesson_10>
<lesson_11>message 11</lesson_11>
</chapter>
这是html文件:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
//load xml document
<script type="text/javascript">
function loadXMLDoc(numders)
{
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xhttp.open("GET",numders,false);
xhttp.send();
return xhttp.responseXML;
}
</script>
</head>
<body>
<script type="text/javascript">
xmlDoc=loadXMLDoc("chapter.xml");
M = xmlDoc.getElementsByTagName("lesson_1");
for (i=0;i<M.length;i++)
{
document.write(M[i].childNodes[0].nodeValue);
document.write("<br />");
}
</script>
<form id="form1" name="form1" method="GET" action="">
<label for="textfield1"></label>
<input style="border-style: inset" maxlength="70" size="90" type="text" name="" id="" />
</form>
<table>
<p style="font-family:'Monotype Corsiva'" align="right">chapter
<select style="width:100px" name="lessons">
<option>lesson_1</option>
<option>lesson_2</option>
<option>lesson_3</option>
<option>lesson_4</option>
<option>lesson_5</option>
<option>lesson_6</option>
<option>lesson_7</option>
<option>lesson_8</option>
<option>lesson_9</option>
<option>lesson_10</option>
<option>lesson_11</option>
</select>
</p>
</table>
</body>
</html>
当我从下拉列表菜单中选择第一个选项"课程_1"时,我想从上面表格中的xml文档"消息1"加载,等等,第二个选项"课_2"从xml"消息2"加载。。。
对我的问题有什么建议吗?
提前感谢!
您似乎在使用一本非常过时的教程/书籍。
这行代码特别清楚地显示了
else
{// code for IE6, IE5
xhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
你应该考虑去掉教程,使用现代的工具包/框架,比如jQuery、mootools或YUI,它内置了这个功能(对你自己来说非常容易(
jQuery文档提供了将AJAX与jQuery结合使用的极好介绍,其中向您展示了一个易于理解和使用的片段。
x=xmlDoc.getElementsByTagName("chapter");
for (int i = 0; i < x.childNodes.length; i ++) {
addOption(x.childNodes[i].textContent);
}
addOption
是用于添加选项的js函数。
首先,一个格式良好的xml文档必须包含一个根(父(节点,您所显示的xml包含一个未关闭的根节点。请关闭那个。''
接下来,我做了一个快速更改,使其仅适用于IE,您可以将其更新为适用于其他浏览器,PFB代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org /TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>test</title>
<script type="text/javascript">
function fetchMessage(el) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", "chapter.xml", false);
xmlhttp.send();
xmlDoc = xmlhttp.responseXML;
// var items = xmlDoc.getElementsByTagName('chapter');
var item = xmlDoc.selectSingleNode("//" + el.value).text;
document.getElementById("message").value = item;
}
</script>
</head>
<body>
<form id="form1" name="form1" method="GET" action="">
<label for="textfield1">
</label>
<input style="border-style: inset" maxlength="70" size="90" type="text" name="" id="message" />
</form>
<table>
<p style="font-family: 'Monotype Corsiva'" align="right">
chapter
<select style="width: 100px" name="lessons" onchange="fetchMessage(this);">
<option>lesson_1</option>
<option>lesson_2</option>
<option>lesson_3</option>
<option>lesson_4</option>
<option>lesson_5</option>
<option>lesson_6</option>
<option>lesson_7</option>
<option>lesson_8</option>
<option>lesson_9</option>
<option>lesson_10</option>
<option>lesson_11</option>
</select>
</p>
</table>
</body>
</html>
相关文章:
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- AngularJS/HTML/Bootstrap元素用于动态搜索结果
- 使用PHP通过HTML表单选项选择器过滤MYSQL结果
- 计数HTML表中筛选的结果
- 如何将mysql查询的结果获取到html文本框中
- 如何将 JavaScript 中 HTML 的结果写入文件
- 如何等待一个HTML页面并在页面复杂创建时获得结果
- 使用 js 函数显示 HTML 表单的结果
- HTML
“width” 属性在不同的浏览器中产生不同的结果 - 正确显示从 ajax 请求到 html 的结果
- 使用 AJAX 在页面加载时自动提交表单并获得 html 类型结果
- 显示基于javascript函数结果的HTML代码
- 使用 jQuery 从 HTML 获取 id,给出意想不到的结果
- 在HTML中隐藏/显示表单会产生异常结果
- 试图通过克隆节点来替换 HTML,但得到奇怪的结果
- jquery我应该如何在多个html文件中实时搜索结果
- 将javascript计算结果自动放入HTML表单中
- 计算和触发onchange,并将结果写入html
- 使用HTML搜索,需要JavaScript来搜索数组并在新窗口中返回结果
- 如何张贴到其他领域,并在javascript中获得结果html