PHP/javascript onchange不使用textarea

PHP/javascript onchange不使用textarea,php,javascript,ajax,Php,Javascript,Ajax,我对这个javascript函数有问题,但我不确定到底发生了什么。 保持故事简短; 我使用select创建了一个下拉列表,其中有几个选项(项目名称)。这些选项取自数据库。每个项目都有一个名称(在下拉列表中列出)和内容。内容应该加载到文本区域。现在这是我制作和工作的部分 然而,问题是,当我在项目的内容(文本区域)中更改某些内容时,下拉列表停止工作。我仍然可以单击它并更改为其他项目,但该项目未加载 这是我的javascript <script> function getC

我对这个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>

函数getContent(){
var mail=document.getElementById(“email”).value;
var project=document.getElementById(“项目”).value;
var-xhr;
如果(window.XMLHttpRequest){//Mozilla,Safari。。。
xhr=newXMLHttpRequest();
}else如果(window.ActiveXObject){//IE 8及更早版本
xhr=新的ActiveXObject(“Microsoft.XMLHTTP”);
}
var data=“project=“+project+”&email=“+mail;
open(“POST”,“/includes/projects.php”,true);
setRequestHeader(“内容类型”,“应用程序/x-www-form-urlencoded”);
发送(数据);
xhr.onreadystatechange=显示数据;
函数显示_数据(){
if(xhr.readyState==4){
如果(xhr.status==200){
//警报(xhr.responseText);
document.getElementById(“项目内容”).innerHTML=xhr.responseText;
}否则{
警报(xhr.状态);
}
}
}
}
这是我的下拉列表和文本区

<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>

选择项目

您必须设置文本区域的value属性,而不是innerHTML

document.getElementById("projectcontent").value = xhr.responseText;

您必须设置文本区域的value属性,而不是innerHTML

document.getElementById("projectcontent").value = xhr.responseText;

您可以使用jquery使此函数非常简单

function getContent()  
 {      
     var mail = $("#email").val();
     var project = $("#projects").val();

    $.ajax({
            type : "POST",
            url : "/includes/projects.php",
            data : "project=" + project+  "&email=" + mail,
            success : function(result)  {  $("#projectcontent").val(result);  }
           });  
 }

您可以使用jquery使此函数非常简单

function getContent()  
 {      
     var mail = $("#email").val();
     var project = $("#projects").val();

    $.ajax({
            type : "POST",
            url : "/includes/projects.php",
            data : "project=" + project+  "&email=" + mail,
            success : function(result)  {  $("#projectcontent").val(result);  }
           });  
 }

有什么错误吗?当您第二次更改下拉列表时,浏览器是否发出xhr请求?在Chrome和Firefox中,您可以按F12打开开发者工具,查看控制台中的错误和xhr请求,单击它们也会显示响应。我更喜欢使用Firefox和Firebug插件,但这只是我个人的敬意。是的,我得到了正确的回答,没有错误。但问题已经解决了。无论如何谢谢你!有什么错误吗?当您第二次更改下拉列表时,浏览器是否发出xhr请求?在Chrome和Firefox中,您可以按F12打开开发者工具,查看控制台中的错误和xhr请求,单击它们也会显示响应。我更喜欢使用Firefox和Firebug插件,但这只是我个人的敬意。是的,我得到了正确的回答,没有错误。但问题已经解决了。无论如何谢谢你!谢谢你,先生。就是这样。我不知道我怎么会错过的。谢谢你,先生。就是这样。我不知道我怎么会错过。