【发布时间】:2014-04-12 04:06:35
【问题描述】:
因此,在玩家输掉比赛后,我希望他们的分数使用 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'
有没有人知道任何快速的捷径来做到这一点?谢谢!
【问题讨论】:
-
我认为您对 PHP 如何与 javascript 交互感到困惑。您在那里设置的 php 将在页面加载时运行。围绕它运行的 javascript 不会再次运行 php。 AJAX 也是 javascript 的一部分,所以如果你的教授只想要 PHP 和 javascript,你应该也可以使用 ajax。
-
@AdamMerrifield 问题是他没有教我们 AJAX,但我需要更新游戏中的高分。这将如何使用 AJAX 完成?
-
您真正需要做的就是向另一个包含分数的页面发出请求。所以你真正能做的就是在 checkFinished if
end()window.location = '/updatescore.php?score='+getScore();然后在updatescore.php做你的 php 东西。游戏结束后页面将重新加载,但它会在没有 ajax 的情况下发送请求。或者,您可以在页面上的 iFrame 中执行此操作,这样您就不会让用户离开页面
标签: javascript php jquery