2012-06-03 47 views
0

我無法讓我的簡單ajax腳本運行。代碼應該很簡單。 了AJAX腳本是:如何使用AJAX將信息發送到PHP腳本?

<html> 

<head><title>Testing ajax</title> 

    <script type="text/javascript"> 

     function ajax() { 

      var xmlhttp; 

      var fname=document.getElementById("fname").value; 

      if(window.XMLHttpRequest) { 
       xmlhttp=new XMLHttpRequest(); 
      } else { 
       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
      } 

      xmlhttp.onreadystatechange=function() { 

       if (xmlhttp.readyState==4 && xmlhttp.status==200) { 

        document.getElementById("output").innerHTML=xmlhttp.responseText; 

       } 

      } 

      xmlhttp.open("GET","ajax.php?fname="+fname,true); 
      xmlhttp.send(); 

     } 

    </script> 

</head> 

<body> 


    <form> 

     <input type="text" id="fname"> 

     <input type="text" id="lname"> 

     <input type="submit" id="submit" onclick="ajax()"> 


    </form> 


    <div id="output"></div> 


</body> 

而且PHP腳本是:

<?php 

$fname=$_GET['fname']; 

echo "<p>Hello ".$fname."</p>"; 

?> 

我也試過:

xmlhttp.open("POST","ajax.php",true); 
xmlhttp.setRequestHeader("Content-type","application/pass-data"); 
xmlhttp.send("fname="+fname); 

我不能既交不獲取發送數據的方法。我沒有看到簡單的東西嗎?

+0

您正在發佈數據,但試圖從$ _GET在PHP中檢索它? – kinakuta

+0

我已經嘗試過這兩個帖子,但無法獲得任何方式的工作。它正在使用得到 – Beamer180

+0

是位於與PHP文件相同的文件夾中的JS文件?路徑是正確的? –

回答

3

它不起作用的原因是由於您的輸入內容爲<form>標籤。除去表單標籤後,當我與<input type="submit" />控制想你的代碼變更爲

<input type="button" onClick="ajax()" value="Submit" /> 

它的工作就像一個魅力。由於提交時的某些好處,安全問題等,我懷疑表單行爲的處理方式不同。

+0

謝謝,謝謝。如此接近但如此遙遠:P – Beamer180

0

變化從提交按鈕

輸入類型輸入類型=「按鈕」的onclick = ...

因爲當你點擊按鈕,將馬上提交頁面,如果類型=「提交」。