2013-06-19 146 views
0

這可能有一些非常明顯的答案,我錯過了,但我似乎無法弄清楚。所有來自PHP和查詢的搜索功能都能正常工作。唯一不起作用的是數據在文本區域翻譯的中未正確顯示。以下是代碼。javascript值未定義從PHP函數

document.getElementById("translated").innerHTML = xmlhttp.open("GET","ajax-result.php?result="+num,true); 

innerHTML部分,無論我加(從文本到HTML)後進入正確的地方,但現在上面的代碼中說,這是undefined

+1

...這不是阿賈克斯如何工作。 – jeremy

+0

@Nile該函數從php查詢中返回正確的值。它只是不顯示它的權利。 – deathtap

回答

1

xmlhttp.open不會返回任何東西 - 這就是爲什麼你得到「未定義」。閱讀http://www.w3schools.com/ajax/ajax_xmlhttprequest_send.asp,特別注意 xmlhttp.onreadystatechange部分。

更爲方便的方式來做到這一點是使用jQuery的ajax方法:http://api.jquery.com/jQuery.ajax/

+0

用於'xmlhttp.onreadystatechange =函數() { 如果(xmlhttp.readyState == 4 && xmlhttp.status == 200){ 的document.getElementById( 「myDiv」)的innerHTML = xmlhttp.responseText。 } } xmlhttp.open(「GET」,「ajax_info.txt」,true); xmlhttp.send();'它的工作完美無瑕。謝謝。 – deathtap

0

這不是Ajax如何工作。你應該有被稱爲一個回調函數,當服務器響應

喜歡的東西

if (window.XMLHttpRequest) { 
     xmlhttp=new XMLHttpRequest(); 
} 
// setup callback function 
xmlhttp.onreadystatechange=function(){ 
    if (xmlhttp.readyState==4 && xmlhttp.status==200){ 
     if(xmlhttp.responseText == 1){ 
      document.getElementById("translated").innerHTML = xmlhttp.responseText; 
     } 
    } 
} 
xmlhttp.open("GET",'your request to sever',true); 
0

如果你真的想保存自己有些頭疼,我熟悉的jQuery。

下面是你試圖完成的一個完整的工作示例。

輸入和按鈕的實現只是爲了模擬指定值並調用函數的方法。

<!DOCTYPE html> 
<html> 
    <head> 
     <script type="text/javascript" src="http://code.jquery.com/jquery-1.10.1.min.js"></script> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      function runAjax(num) { 
       $.ajax({ 
        'url': 'ajax-result.php', 
        'type': 'GET', // Can also be 'POST' 
        'data': { 
         'result': num 
        }, 
        'success': function(result) { 
         $('#translated').html(result); 
         alert('success!'); 
        }, 
        'error': function(xhr, status, exception) { 
         alert('failed with status code: ' + status); 
        } 
       }); 
      } 

      $(document).ready(function() { 
       $('button').click(function() { 
        var $input = $('input'); 
        var num = $input.val(); 
        runAjax(num); 
       }); 
      }); 
     </script> 

     <input type="text" name="num" value="123" /> 
     <button type="button">Click Me!</button> 
    </body> 
</html> 
+1

謝謝你。我一直有意深入研究jQuery。 – deathtap

+0

沒有問題。祝你好運! –