2011-09-09 125 views
2

我正在調用一個PHP函數ajax ...我試圖顯示服務器時間使用PHP腳本時間輸入字段...我正在學習一個教程我發現每個單詞在線單詞,但由於某種原因,我不斷收到來自php文件在實時輸入字段中的實際文本......有人可以告訴我爲什麼發生這種情況?ajax調用PHP不能正常工作

這裏是我的代碼

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html> 
<head> 
    <title>Server Time Example</title> 
</head> 
<body> 

<script language="javascript" type="text/javascript"> 
<!-- 
    //Browser Support Code 
    function ajaxFunction() { 
     var ajaxRequest; // The variable that makes Ajax possible! 

     try { 
      // Opera 8.0+, Firefox, Safari 
      ajaxRequest = new XMLHttpRequest(); 
     } catch (e) { 
      // Internet Explorer Browsers 
      try { 
       ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
      } catch (e) { 
       try { 
        ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
       } catch (e) { 
        // Something went wrong 
        alert("Your browser broke!"); 
        return false; 
       } 
      } 
     } 
     // Create a function that will receive data sent from the server 
     ajaxRequest.onreadystatechange = function() { 
      if (ajaxRequest.readyState == 4) { 
       document.myForm.time.value = ajaxRequest.responseText; 
      } 
     } 
     ajaxRequest.open("GET", "serverTime.php", true); 
     ajaxRequest.send(null); 
    } 

//--> 
</script> 

<form name='myForm'> 
Name: <input type='text' onChange="ajaxFunction();" name='username' /> <br /> 
Time: <input type='text' name='time' /> 
</form> 
</body> 
</html> 

這裏的PHP:

<?php 
    echo date("H:i:s"); 

?> 
+1

請顯示您的PHP代碼。 –

+0

爲什麼不使用像j –

+2

這樣的外部ajax庫@David MZ - 雖然jQuery很可愛,但並不是每個Web應用程序都要使用它。滾動你自己沒有任何問題。 –

回答

2

我打算假設您使用Apache作爲您的Web服務器。你應該確保你的配置中有類似以下內容:

AddType application/x-httpd-php .php 

它看起來像你的文件被作爲純文本而不是被交給PHP。

0

我要玩Carnac說,那是因爲你沒有<?PHP在你的文件和?>的開始做在文件的末尾。

+0

或者Web服務器沒有正確設置來處理擴展名爲.php的文件(即它們只是作爲純文本提供)。 –

+0

@ Ek0nomik:Yessir,我認爲在看到他的帖子底部插入了PHP代碼後,問題就出現了。 –

+0

@ Ek0nomik:你應該將其作爲答案發布。 –

1

檢查以下內容:

  1. PHP代碼(echo date("H:i:s");)應該是從AJAX/HTML代碼(技術上有辦法來解決這個問題一個單獨的文件,但它們使一切更復雜)
  2. PHP文件應該有.php擴展
  3. 您的服務器應設置把.php文件擴展名作爲PHP代碼(見Ek0nomik的答案)
  4. 的PHP代碼應該有<?php?>標籤周圍
  5. 您的服務器應該安裝PHP

如果這一切失敗,去php文件直接在瀏覽器,看看會發生什麼吧。

+0

我的php文件與我的html文件是分開的,並且位於同一個目錄中。它也有.php擴展名。 當你說我的服務器應該配置爲處理.php文件擴展名時,你的意思是什麼?我在我的機器上安裝了apache 2.2.20,並且我運行的是windows xp sp2 – theNoobProgrammer

+0

我想通了......感謝您的幫助......事實證明,我忘記將php.ini文件中的short_tags設置爲那就是爲什麼它沒有正確閱讀我的PHP腳本:P – theNoobProgrammer