2012-01-12 39 views
0

我有这个简单的ajax代码,出于某种原因,它不会将内容加载到textarea上。我需要它来加载内容,以便它可以在textarea中编辑。Ajax - 将内容加载到Textarea中

下面是代码,我不知道我做错了什么。但它显示在一个div像这样

<div id="content"></div> 

下面是完整的代码

<html> 
<head> 
<title>Editing Page Content</title> 

<script type="text/javascript"> 
function showCustomer(str) 
{ 
var xmlhttp;  
if (str=="") 
    { 
    document.getElementById("content").innerHTML=""; 
    return; 
    } 
if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    {// code for IE6, IE5 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
    document.getElementById("content").innerHTML=xmlhttp.responseText; 
    } 
    } 
xmlhttp.open("GET","load.php?file="+str,true); 
xmlhttp.send(); 
} 
</script> 

</head> 
<body> 
    <p>Page Select to edit</p>  

     <?php 

      $result = mysql_query("SELECT pagename FROM site_content");    
       echo "<select name=\"pagename\" onchange=\"showCustomer(this.value)\" style=\"width:300px;\">";    
       echo "<option selected value=''>Please select a page to edit...</option>";    
       while($row = mysql_fetch_assoc($result)){ 
       echo "<option selected value='" . $row['pagename'] ."'>" . $row['pagename'] . "</option>\n";   
       }    
      echo "</select>";   

      ?>  

      <div id="content"> 
       **it works here** 
      </div> 

      <textarea cols="50" id="area1" style="position: absolute; width: 700px; height: 300px;"> 
        **It won't work here** 
      </textarea> 

      <input type="button" value="Submit content"> 

      </div>  
     </body>    
</html> 

任何帮助,将不胜感激。

+0

使用jQuery它的真棒! – binnyb 2012-01-12 22:36:13

回答

3

从您的代码,这看起来做的正是你想要什么:

if (xmlhttp.readyState==4 && xmlhttp.status==200) 
{ 
    document.getElementById("content").innerHTML=xmlhttp.responseText; 
} 

由于您的div有“内容”的响应的ID被放在那里。尝试是这样的:

document.getElementById("area1").value = xmlhttp.responseText; 

我还要劝你看看为mysql_*被认为是过时的,是一个长期的折旧的PHP documentation on choosing a MySQL API

+0

感谢您的回复。您可能误解了它,内容显示为普通div,而不是textarea。如果我将“内容”ID更改为textarea的ID,则不会显示在那里。 – 2012-01-12 22:42:18

+0

@HelenNeely你是否将属性从'innerHTML'改为'value'? – cspray 2012-01-12 22:43:00

+0

谢谢你的工作。事实上,我认为问题的一部分可能与我使用的nicEdit html编辑器有关。它似乎没有刷新textarea内容。 :( – 2012-01-12 23:04:30

0

这为我工作:

document.getElementById("area1").value=xmlhttp.responseText;