Передача текста контейнера в переменную 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 ");
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;
Очень хороший ваш ответ делал что-то подобное, и это очень помогло мне.
Здесь я оставляю свой код
<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>