2012-01-12 178 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;