如果你认为这可能是重复的,我很抱歉,但我已经尝试了我遇到的一切,但问题仍然存在——这让我很生气!
我基本上想在按下键时将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
而不仅仅是发出警报。