Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XML层叠下拉列表,javascript有问题_Javascript_Html_Xml - Fatal编程技术网

XML层叠下拉列表,javascript有问题

XML层叠下拉列表,javascript有问题,javascript,html,xml,Javascript,Html,Xml,这是我的密码。我正试图用javascript和XML在html中创建一个级联下拉框,我几乎快结束了,但我就是不能让它工作,有人能帮我关闭它吗 我的剧本 <?xml version="1.0" encoding="UTF-8" standalone="yes"?> <EMPLOYEES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <RECORD> <DEPARTME

这是我的密码。我正试图用javascript和XML在html中创建一个级联下拉框,我几乎快结束了,但我就是不能让它工作,有人能帮我关闭它吗

我的剧本

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<EMPLOYEES xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <RECORD>
        <DEPARTMENT>Operations</DEPARTMENT>
        <DESIGNATION>Assistant Manager</DESIGNATION>
        <NAME>Abhijit Khamkar</NAME>
        <SUPERVISOR>Vamsee Nidiganti</SUPERVISOR>
        <CTC>5541601.5100909</CTC>
    </RECORD>
    <RECORD>
        <DEPARTMENT>Operations</DEPARTMENT>
        <DESIGNATION>Team Leader</DESIGNATION>
        <NAME>Elish Anand</NAME>
        <SUPERVISOR>Abhijit Khamkar</SUPERVISOR>
        <CTC>4356182.71368286</CTC>
    </RECORD>
</EMPLOYEES>
我的HTML

<html>
<head>
<meta charset="utf-8"/>
<title>Attendance Drop Down</title>
</head>
<body>
<div id="update" ></div>
<script>
var request;
if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
} else {
    request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET','Employee.xml')
request.onreadystatechange = function() {
    if((request.readyState===4) &&
        (request.status===200)) {
        var items = request.responseXML.getElementsByTagName('DEPARTMENT');
        var output = '<select id="departments" onchange="update();">'; 
        for (var i = 0; i < items.length; i++) {
            output += '<option>' + 
            items[i].firstChild.nodeValue +'</option>';
        }
        output += '</select>';
        document.getElementById('update').innerHTML = output;
}
}
function update(){
var request;
if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
} else {
    request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET','Employee.xml')
request.onreadystatechange = function() {
    if((request.readyState===4) &&
        (request.status===200)) {
        var items = request.responseXML.getElementsByTagName('DESIGNATION');
        var output = '<select id="designations">'; 
        for (var i = 0; i < items.length; i++) {
            output += '<option>' + 
            items[i].firstChild.nodeValue +'</option>';
        }
        output += '</select>';
        document.getElementById('update').innerHTML = output;
}
}
}
request.send();
</script>
</body>

</html>
您需要添加:

请求发送

在更新函数内部,您拥有的更新函数位于外部,用于执行初始调用,但在调用更新函数时不会被调用

<html>
<head>
<meta charset="utf-8"/>
<title>Attendance Drop Down</title>
</head>
<body>
<div id="update" ></div>
<script>

var request;
if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
} else {
    request = new ActiveXObject("Microsoft.XMLHTTP");
}
request.open('GET','Employee.xml')
request.onreadystatechange = function() {
    if((request.readyState===4) &&
        (request.status===200)) {
        var items = request.responseXML.getElementsByTagName('DEPARTMENT');
        var output = '<select id="departments" onchange="update();">'; 
        for (var i = 0; i < items.length; i++) {
            output += '<option>' + 
            items[i].firstChild.nodeValue +'</option>';
        }
        output += '</select>';
        document.getElementById('update').innerHTML = output;
    }
}
request.send();

function update(){
    var request;
    if (window.XMLHttpRequest) {
        request = new XMLHttpRequest();
    } else {
        request = new ActiveXObject("Microsoft.XMLHTTP");
    }
    request.open('GET','Employee.xml')
    request.onreadystatechange = function() {
        if((request.readyState===4) &&
            (request.status===200)) {
            var items = request.responseXML.getElementsByTagName('DESIGNATION');
            var output = '<select id="designations">'; 
            for (var i = 0; i < items.length; i++) {
                output += '<option>' + 
                items[i].firstChild.nodeValue +'</option>';
            }
            output += '</select>';
            document.getElementById('update').innerHTML = output;
        }
    }
    request.send();
}
</script>
</body>

仍然不起作用:到底什么不起作用?我测试了代码,效果很好。第一个选择是否已填充?