2012-04-22 86 views
1

原諒簡單的問題。我想通過一個變量從JavaScript到PHP,我明白這可以用一個xmlhttprequest對象來完成。所以我建立了一個測試腳本來弄清楚如何做到這一點。無法獲得XMLHttpRequest的發送方法的工作

我使用的XAMPP,我放在下面的文件,main.php和test.php的進入在htdocs文件夾合適的位置。

main.php試圖通過一個可變使用XMLHttpRequest來test.php的。 test.php只是迴應變量。然後我嘗試在main.php中顯示回顯的結果。

當我在瀏覽器中,並查看源裝載main.php,我希望看到的可變回蕩。相反,我看到一個錯誤消息,應該傳遞給test.php的變量是未定義的。

任何幫助將是最受歡迎的。

<html> 
    <head> 
    <title>Main</title> 

    <script type="text/javascript" src="../scripts/jquery-1.7.1.min.js"></script> 

    <script language="javascript" type="text/javascript"> 

    $(document).ready(function() { 

     xmlhttp=new XMLHttpRequest(); 

     xmlhttp.open("GET","test.php?var1=hello", true); 
     xmlhttp.send(null); 

     <?php include("test.php"); ?> 

    }); 

    </script> 

</head> 
<body></body> 
</html> 

這裏是test.php的駐留在同一文件夾中main.php

<?php 
$name=$_GET['var1']; 
echo $name; 
?> 

回答

0

我相信你正在運行在異步模式下請求的代碼,所以檢查就緒狀態變化:

xmlhttp=new XMLHttpRequest(); 

xmlhttp.open("GET","test.php?var1=hello", true); 
xmlhttp.send(null); 

xmlhttp.onreadystatechange=function() { 
    if (xmlhttp.readyState==4) { 
    alert(xmlhttp.responseText) 
} 
+0

哇,謝謝你的快速反應。不幸的是,它似乎沒有工作。當我加載main.php並查看源代碼時,我看到以下錯誤。 注意:未定義指數:VAR1在C:上線\ XAMPP \ htdocs中\ testPAGE \ PHP \ test.php的
syd 2012-04-22 04:23:25

+0

我仔細檢查了我的Apache服務器正在運行。 – syd 2012-04-22 04:25:07

+0

我並不真正瞭解php,但我知道在調用AJAX請求中的GET方法之前,您無法加載您的test.php腳本。如果你使用ajax來調用它,你爲什麼要包含它? – 2012-04-22 04:28:09

0

我注意到,它看起來像你使用jQuery(如果它是灒,忽略此休息), 所以你並不需要使用! jQuery內置了Ajax方法,可以大大簡化它!

$.ajax({ 
    url:"test.php", 
    method:"get", 
    data:{ 
      var1:"hello" 
     } 
}).done(function(data){ 
    alert(data); 
}); 

將創建XMLHttpRequest併發送它。