2014-01-11 62 views
0

我在按照我的舊問題發帖,突然進入一個新問題,即:我的代碼沒有進入這一行「xmlhttp.onreadystatechange = function() 」。我還通過標記警報進行檢查。所以我無法理解。有人可以告訴我爲什麼這不會發生?not entered in「xmlhttp.onreadystatechange = function(){」

<html> 
    <head> 
     <script> 

      function changeThis(){ 

       xmlHttp = new XMLHttpRequest(); 
       var formInput = document.getElementById('theInput').value; 
       /* formInput will be undefined */ 
       document.getElementById('newText').innerHTML = formInput; 
       /* also undefined */ 
       // var xmlHttp = null; 

       xmlhttp.onreadystatechange=function() //help 
       { 
        alert("y"); // not entering help????? 
        if (xmlhttp.readystate==4 && http.status==200) 
        { 
         document.getElemenById('newText').innerHTML=xmlhttp.reponseText; 
        } 
        if(xmlhttp.status == 404) 
        { 
         var temp = "NO file found"; 
         document.getElementById('newText').innerHTML=temp; 
        } 
        xmlHttp.open("GET", "file2.php", true); 
        xmlHttp.send(); 
      } 
     } 
     </script> 
    </head> 
    <body> 

    <p>You wrote: <span id='newText'></span> </p> 
    <textarea id="theInput" style="height:200px;">Write Here</textarea> 
    <input type='button' onclick='changeThis()' value='See what you wrote'/> 

    </body> 
</html> 

回答

1

移動這樣的:

    xmlHttp.open("GET", "file2.php", true); 
        xmlHttp.send(); 

onreadystatechange處理機的外部;您的當前代碼將不會嘗試在HTTP請求已經取得進展之前提交HTTP請求。 (帽尖到judder編輯您的問題,正確縮進代碼,使得這個問題很明顯)

編輯補充:此外,作爲Pavlo指出,您需要持續寫xmlHttp。 JavaScript變量名稱區分大小寫,因此xmlhttp是完全不同的變量。

+0

我這樣做,但沒有參數進入xmlhttp.onreadystatechange函數內部。如果你能看到我在代碼中的評論,你可能會明白我在問什麼,也可能是你可以找到我在做錯的地方。 – user3162878

+0

@ user3162878另外,介意大寫。 JavaScript變量區分大小寫,所以'xmlhttp'和'xmlHttp'不一樣。 – Pavlo

+0

@Pavlo:好點;我會將其添加到我的答案中。 – ruakh