尝试使用AJAX将JavaScript变量传递给PHP,但获取“未定义的索引”

时间:2013-12-13 10:59:39

标签: javascript php jquery ajax variables

如果你认为这可能是重复的我道歉,但我已经尝试了所有我遇到过的问题并且问题仍然存在 - 这让我很生气!

我基本上想要在命中键时将JS变量传递给PHP变量。

这是我的PHP文件设置(位于http://localhost/quiz/index.php

的简化版本
<html>
    <head>
        <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js" ></script>
    <head>
    <body>
        <p>
            <?php
                $uid = $_POST['userID'];
                echo $uid;
            ?>
        </p>
        <script src="js/site.js"></script>
    </body>
</html>

然后在site.js文件中,我有以下内容:

jQuery(document).ready(function($) {

$(document.body)
.keyup(function() {
    var userID = "Jim";
    $.ajax({
        type: "POST",
        url: 'http://localhost/quiz/index.php',
        data: { userID : userID },
        success: function(data)
        {
            alert("success!");
        }
    });
});

});

当然,我想要在按下某个键时在段落中输出JS变量userID值('Jim'),但它只显示:

Notice: Undefined index: userID in C:\xampp\htdocs\quiz\index.php on line 66

然而,当按下某个键时,会弹出“成功”警告。

有谁知道我在哪里出错?如果那是相关的,我正在使用Xampp!

谢谢!

1 个答案:

答案 0 :(得分:2)

您需要两个PHP文件(或一个具有一些分支逻辑的文件)。

  • 一个用于提供加载JS的HTML文档
  • 一个提供Ajax响应

您收到错误是因为在POST请求中未提交userID以加载初始页面。

然后,您需要修改JavaScript,以便使用data执行某些操作,而不仅仅是警告。