分数计数器使用PHP和JavaScript

Score counter using PHP and JavaScript

本文关键字:PHP JavaScript 计数器      更新时间:2023-09-26

如果我想添加一个分数计数器到我的网站。例如,如果用户回答了一个问题,那么它将被保存在数据库中,而正确的答案已经保存在同一个数据库表中。我想比较一下这些答案。如果答案正确,分数就会提高。

我计划用JAVASCRIPT编写分数计数器。如何在PHP中调用javascript函数

如果我这样做:

<?php
if($_SESSION['Correct_answer'] == $_SESSION['User_answer'])
echo "<SCRIPT LANGUAGE='javascript'>" echo count() "</SCRIPT>";

javascript函数看起来像:

<script>
var x=0;
function count(){
x+=1;
document.getElementById( "counting" ).value =  x;
}

其中"counting"是一个文本字段。当我试图使用这个代码时,它不起作用。以上代码正确吗??

提前谢谢你。

编辑:

好的,我做了你说的,但我仍然有一个问题,当刷新页面的分数增加一。当我重新加载页面时,如何阻止分数的增加??

下面是我的代码:
if (!isset($_SESSION['score']))
   $_SESSION['score'] = 0;

else{
$sql10=mysql_query("select * from image WHERE fromUser='".$_SESSION['email']."' order by id desc");
$score1=mysql_fetch_array($sql10);
$answer=$score1['answer'];
$sql13=mysql_query("select * from image WHERE toUser='".$_SESSION['email']."' order by id desc");
$score2=mysql_fetch_array($sql13);
$answer2=$score2['answer2'];

strcasecmp($answer,$answer2);
if(strcasemp)
$_SESSION['score'] += 1;
}

服务器端PHP和客户端JavaScript不能像那样直接调用对方。所有这些逻辑都应该在PHP中。您可能想要这样的东西(我假设您也想将分数存储在$_SESSION中)。

<?php
if (!isset($_SESSION['score'])
    $_SESSION['score'] = 0;
if ($_SESSION['Correct_answer'] == $_SESSION['User_answer'])
    $_SESSION['score'] += 1;
?>
<p>Current score: <?= $_SESSION['score'] ?></p>

你看,服务器端代码(比如PHP)是在你的web服务器上运行的,而JavaScript是在浏览器中运行的。服务器和浏览器仅通过您发出的HTTP请求进行通信,因此PHP和JavaScript函数无法像您试图做的那样相互调用。