Я разработал игру на память с изображениями.Игра работает отлично.У меня проблема с оценками.Когда игра завершена, счет отображается на экране с помощью кнопки «Отправить».Поэтому, когда я нажимаю кнопку, счет должен быть добавлен в базу данных.Я пытался использовать ajax, php и Javascript.
Код php для кнопки отправки:
game.php:
<?php session_start();
?>
<body>
<div align='center'>
<button class="play-again" onclick="reset()>Play Again</button>
<button id="sendscore" class="Go-on"><a href="gallery.php">Submit</a></button></div></p>
</div>
Логика игры, где вычисляется счет:
gameply.php:
<? php ?>
<script type="text/javascript">
var gamescore;
var totalscore;
if(matches =='8'){
var totalscore = calcScore();
document.getElementById("score").innerHTML= totalscore;
}
function calcScore(){
var tilesbonus = (matches) * 20; // 20 points for each successful tile
var timebonus = (finaltime) * 2; // 8 points for each second
var triesbonus = (30 - moves) * 5; // (deduct) 10 points for each try
if (tilesbonus <0) { tilesbonus = 0; }
if (timebonus <0) { timebonus = 0; }
if (triesbonus <0) { triesbonus = 0; }
totalscore = tilesbonus + timebonus + triesbonus;
return totalscore;
}
$("#sendscore").on("click",function(){
gamescore= document.getElementById("score").innerHTML;
$ajax({
type:'POST',
url: 'server.php',
data:{
'gamescore': gamescore,
},
success: function(data)
{
alert('score is submitted'); }
})
});
</script>
Код, по которому он получает вызов ajax и сохраняет результат в таблице:
server.php:
<?php
session_start();
if(isset($_POST['gamescore'])){
$username=$_SESSION['username'];
$fetch = "SELECT * FROM users WHERE username='$username'";
$fetchid =mysqli_query($db, $fetch);
while ($row=mysqli_fetch_array($fetchid)){
$id = $row['id'];
$username=$row['username'];
$gamescore= $_POST['gamescore'];
$updatescore= "UPDATE users SET score='$gamescore' WHERE id = '$id'";
mysqli_query($db, $updatescore);
$finalscore="UPDATE users SET sum_score = (sum_score + $gamescore) WHERE id='$id'";
mysqli_query($db,$finalscore);
}
}
?>
Проблема, с которой я столкнулся, заключается в том, что, когда я нажимаю кнопку отправки, оценка не добавляется в базу данных.Я получаю ошибку: неопределенный символ '$' в строке $ ("# sentcore"). On ("click", function () {