1

原谅这个简单的问题。我想将一个变量从 javascript 传递给 php,我知道这可以通过 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;
?>
4

2 回答 2

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)
}
于 2012-04-22T04:16:07.373 回答
0

我注意到您似乎正在使用 jQuery(如果它是 Sizzle,请忽略其余部分),因此您不需要使用它!jQuery 内置了 Ajax 方法,大大简化了它!

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

将创建一个 XMLHttpRequest 并发送它。

于 2012-04-23T12:46:27.923 回答