尝试使用AJAX将JavaScript变量传递给PHP,但得到';未定义的索引';


Trying to Pass JavaScript variable to PHP using AJAX but get 'Undefined index'

如果你认为这可能是重复的,我很抱歉,但我已经尝试了我遇到的一切,但问题仍然存在——这让我很生气!

我基本上想在按下键时将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!

谢谢!

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

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

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

然后,您需要修改您的JavaScript,以便它使用data而不仅仅是发出警报。