因此,在玩家输掉比赛后,我希望使用 PHP 将他们的分数更新到数据库中。 我有一个单独的 javascript 类,它实际上运行整个游戏,但它使用 setInterval 来检查 index.php 函数来检查玩家是否输了;如果他们这样做,我希望它更新数据库。更新有效,但它没有获取分数,只是用 0 替换他们拥有的任何高分..显然不是我想要的。我知道人们会推荐 AJAX,但我的教授只想要 PHP 和 Javascript,所以我在这里真的很困惑......这是 index.php 中的函数
<script type="text/javascript">
function checkFinished(){
if(end()){
<?php
if(isset($_SESSION["id"])){
$id = $_SESSION["id"];
$userName = $id["name"];
$update = "UPDATE bloodred SET score='?>score<?php' WHERE name='$userName'";
$update = $dbh->prepare($update);
$update->execute();
}
?>
gameover = false;
}
}
</script>
如你所见,我试图通过在 $update 变量中执行此操作来获取 javascript 变量分数
score='?>score<?php'
有谁知道有什么快速的捷径可以做到这一点吗?谢谢!
最佳答案
Javascript是客户端,PHP是服务器端。当您从 JavaScript 中删除 PHP 时,您最终会得到以下结果:
<script type="text/javascript">
function checkFinished(){
if(end()){
score
gameover = false;
}
}
</script>
如果您想使用 JavaScript 变量的内容更新数据库,则需要向服务器发出新请求。这可以是重定向、AJAX、套接字等。但是将 PHP 放入 javascript 中并期望它像这样执行是行不通的。
顺便说一句,这会以相反的方式工作,因为 PHP 首先执行。这对您的问题没有帮助,但可能有助于澄清为什么您的代码不起作用:
这会起作用:
<script>
alert("<?php echo $variable; ?>");
</script>
关于Javascript 游戏信息到 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23025983/