2016-12-06 3 views
1

У меня есть код игры с памятью, используя javascript, php и css.Как я могу запустить javascript css action?

Я хотел бы как-то зарегистрировать событие, когда игра завершена php, чтобы сохранить результаты в базе данных.

Другими словами, я хотел бы разместить php-код внутри <div id="player_won"></div> и инициировать это событие победы должным образом.

  1. CSS

    #player_won{ 
    display: none; 
    } 
    
  2. Javascript

    $(document).ready(function(){ 
    $(document).bind("game_won", gameWon); 
    } 
    
    function gameWon(){ 
    $.getJSON(document.location.href, {won: 1}, notifiedServerWin); 
    var $game_board = $("#game_board"); 
    var $player_won = $("#player_won"); 
    $game_board.hide(); 
    $player_won.show(); 
    $game_board = $player_won = null; 
    }; 
    
+1

Вы должны попытаться сузить проблему и только опубликовать соответствующий код. – jeroen

+1

Вы можете запустить функцию ajax в своей игре, а затем поместить результат в нужный элемент. – Pete

+0

У меня сузился код. Можете ли вы показать в примере, как я могу запустить функцию ajax, поместив результат в элемент? – chejnik

ответ

1

Вы хотите создать вызов Ajax, который отправляет информацию со страницы и сообщает php ниже, если игрок выиграл или потерял. После этого вы можете справиться с логикой, необходимой для игрока внутри foo.php, и отправить Json в функцию успеха внутри вызова ajax и соответствующим образом обновить вашу страницу.

индекс

$(document).ready(function() { 
    //look for some kind of click below 
      $(document).on('click', '#SomeId', function() { 

     //Get the information you wish to send here 
     var foo = "test"; 
       $.ajax({ 
        url: "/foo.php", 
        type: 'POST', 
        cache: false, 
        data: {Info: foo}, 
        dataType: 'json', 
        success: function (output, text, error) 
        { 

        //here is where you'll receive the son if successfully sent 
        if(ouput.answer === "yes"){ 
         $("#player_won").show(); 
        } else { 
         // Do something else 
        } 

        }, 
        error: function (jqXHR, textStatus, errorThrown) 
        { 
         //Error handling for potential issues. 
         alert(textStatus + errorThrown + jqXHR); 
        } 
       }) 
      }) 
     }); 

foo.php

<?php 

    if(isset($_POST['Info'])){ 
     //figure out if what was sent is correct here. 

     if($_POST['Info'] === "test"){ 
     $data['answer'] = "yes"; 

     echo json_encode($data); 

     exit; 
     } else { 
     // do something else 

     } 
    } 
?> 
+0

Это очень помогло мне. Существует небольшая опечатка - output.answer, изменение слишком маленькое для исправления. Спасибо – chejnik

+0

Я написал большую часть кода из памяти у писателя здесь, так что это получилось немного искалеченным, Не проблема :-) –

Смежные вопросы