Передача текста контейнера в переменную PHP


у меня есть запрограммированная видеоигра в HTML и JavaScript, из которой я хочу передать достигнутые точки в базу данных MySQL, и я не могу найти правильный способ достичь этого.

Код JavaScript:

function updateScore(){
    var score = (snakeLength - startLength) * 10;
    document.getElementById('score').innerHTML = score;
}

function gameScore() {
    $('#ribbon').addClass('hide');
    var highScore = localStorage.getItem("high-score");
    var score = (snakeLength - startLength) * 10;
    $('.current-score').html(score);
    if (score > highScore) {
        $('#ribbon').removeClass('hide');
        $('.high-score').html(score);
        localStorage.setItem('high-score', score);
    } else {
        $('.high-score').html(highScore);}
        gameMenu();
    }

HTML-код (показывает текущие точки видеоигры):

Puntos: <span id="score">0< /span>

PHP код:

мне нужно выполнить update точек в моей базе данных, но я не знаю, как передать тег <span id="score"> переменной PHP. Для AJAX это было бы идеально, но это делает меня труднее.

// Necesito El Resultado en Point 
mysql_query("UPDATE game SET point=$VARIABLE_PUNTOS ");
Author: César, 2016-01-15

2 answers

Вы пытаетесь избежать использования AJAX, однако это не очень сложно сделать. Используя jQuery, вы делаете POST с информацией о score:

request = $.ajax({
    url: "/score.php",
    type: "post",
    data: {
        "score": $("#score").text()
    }
});
request.done(function(response) {
    console.log("¡Bien!")
});
request.fail(function(response) {
    console.log("¡Error!")
});

В PHP:

...
$score = $_POST['score'];
mysql_query("UPDATE game SET point=$score ");
...

Лучше предотвратить, вам будет лучше использовать mysql_real_escape_string чтобы избежать SQL-инъекции:

...
$score = mysql_real_escape_string($_POST['score']);
mysql_query("UPDATE game SET point=$score ");
...

Поскольку вы используете HTML и JavaScript в своей игре,я бы рекомендовал использовать облачную базу данных типа Parse. Вы можете сэкономить много болей голова.

Обновление

Помните, что если атрибут является class:

<span class="current-score">0</span>

Вы должны использовать . вместо #, # это когда вы используете id:

var score = $(".current-score").text();

Если вам нужно передать его в целое число и добавить его, вы можете использовать parseInt:

var score = parseInt($(".current-score").text()) + 50;
 3
Author: César, 2016-01-15 20:52:30

Очень хороший ваш ответ делал что-то подобное, и это очень помогло мне.

Здесь я оставляю свой код

<script language="JavaScript" type="text/JavaScript">                          
    //Metodo para cargar el formulario **************** AQUI USO ALGO DIFERENTE PARA PODER LEER EL id DEL DIV ******
    $("body").on('submit', '#formOrder', function(event) {
    event.preventDefault()
    if ($('#formOrder').valid()) {
        $.ajax({
        type: "POST",
        url: "imagesOrderProcesar.php",
        dataType: "json",
        data: {
        "Order": $("#output").text()
    },
        success: function(respuesta) {
                    if (respuesta.error == 1) {
                        $('#error1').show();
                        setTimeout(function() {
                        $('#error1').hide();
                        }, 1000);
                        window.location.href='login.php'; 
                    }

                    if (respuesta.exito == 1) {
                        document.getElementById('light').style.display='block';document.getElementById('fade').style.display='block';                       
                    }                       
                }
            });
        }
    }); 

    function Salir() {
        window.location.href="propertylist.php";
    }    
</script>
 0
Author: Gustavo Arias, 2016-12-13 22:18:48