2012-01-12 8 views
0

私はこのシンプルなAjaxコードを持っています。何らかの理由で、テキストエリアにコンテンツをロードできません。テキストエリアで編集できるようにコンテンツをロードする必要があります。Ajax - Textareaにコンテンツをロード

ここにコードがありますが、私は何が間違っているのか分かりません。しかし、それはここでは完全なコード

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

だそう

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

のようにdivの中に表示される任意の助けいただければ幸いです。あなたのコードから

+0

使用jqueryのは、それは素晴らしいです! – binnyb

答えて

3

これはあなたが望むものを正確に行うことになります。あなたのdiv以来

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

がそこに置かれている「コンテンツ」応答のIDを持っています。

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

私はmysql_*は時代遅れとみなされ、長期的な非推奨になっているようPHP documentation on choosing a MySQL APIを見てみることをアドバイスもする必要がありますのようなものを試してみてください。

+0

お返事ありがとうございます。あなたはたぶんそれを誤解してしまいました。通常のdivのときにコンテンツが表示されますが、テキストエリアには表示されません。 「コンテンツ」IDをテキストエリアのIDに変更すると、そこには表示されません。 –

+0

@HelenNeelyプロパティを 'innerHTML'から' value'に変更していますか? – cspray

+0

ありがとうございました。実際には、問題の一部は私が使っているnicEdit htmlエディタであると思います。テキストエリアのコンテンツを更新していないようです。 :( –

0
これは私のために働い

document.getElementById("area1").value=xmlhttp.responseText; 
関連する問題