我遇到了这个 javascript 函数的问题,但我不确定到底发生了什么。保持故事简短;我使用 select 制作了一个下拉列表,其中包含几个选项(项目名称)。这些选项取自数据库。每个项目都有一个名称(在下拉列表中列出)和内容。内容应该加载到文本区域中。现在这是我制作和工作的部分。
但是,问题是当我更改项目的内容(在文本区域中)时,下拉列表停止工作。我仍然可以单击它并更改为其他项目,但该项目未加载。
这是我的 javascript
<script>
function getContent() {
var mail = document.getElementById("email").value;
var project = document.getElementById("projects").value;
var xhr;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) { // IE 8 and older
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
var data = "project=" + project+ "&email=" + mail;
xhr.open("POST", "/includes/projects.php", true);
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
xhr.send(data);
xhr.onreadystatechange = display_data;
function display_data() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
//alert(xhr.responseText);
document.getElementById("projectcontent").innerHTML = xhr.responseText;
} else {
alert(xhr.status);
}
}
}
}
</script>
这是我的下拉列表和文本区域。
<form>
<select id="projects" onchange="getContent()"><option>Select project</option>
<?php
foreach($projects as $project)
{?>
<option value="<?php echo $project['id'];?>"><?php echo $project['name']; ?></option>
<?php
}
?>
</select><input type="hidden" id="email" value="<?php echo $_SESSION['user']; ?>" /></form><br />
<textarea id="projectcontent"></textarea>
这里出了什么问题?为什么getContent函数一开始可以工作,但是当我更改textarea的内容时,它就停止工作了?