Как отправить элемент gamescore в Javascript, используя ajax - PullRequest
0 голосов
/ 27 сентября 2019

Я разработал игру на память с изображениями.Игра работает отлично.У меня проблема с оценками.Когда игра завершена, счет отображается на экране с помощью кнопки «Отправить».Поэтому, когда я нажимаю кнопку, счет должен быть добавлен в базу данных.Я пытался использовать 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 () {

1 Ответ

1 голос
/ 27 сентября 2019

вы не включили Jquery в ваш файл.

добавьте

 `<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>`

в этой строке перед тегом </html>.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...