Estoy tratando de hacer un juego de serpientes dentro de mi sitio web, y me he encontrado con el problema de no poder enviar la puntuación y los datos del usuario (para una tabla de clasificación) a mi base de datos SQL. Soy realmente nuevo en el desarrollo web, por lo que no estoy seguro de si tal vez haya una solución súper simple que sigo pasando por alto. Esta es la parte del bloque de código JavaScript del juego en la que me estoy enfocando:
// snake occupies same space as a body part. reset game if (cell.x === snake.cells[i].x && cell.y === snake.cells[i].y) { //Ask for new user if one isn't registered if (document.getElementById("userV").innerHTML == "User: ____") { document.getElementById("userData").innerHTML = window. prompt("User:"); document.getElementById("userVisible").innerHTML = "User: " + document.getElementById("userData").innerHTML; } /* *Here is where I need to send user and score data to snake_scores table */ snake.x = 160; snake.y = 160; snake.cells = []; snake.maxCells = 4; snake.dx = grid; snake.dy = 0; snake.score = 0; document.getElementById("scoreData").innerHTML = snake.score; document.getElementById("scoreVisible").innerHTML = "Score: " + snake.score; apple.x = getRandomInt(0, 25) * grid; apple.y = getRandomInt(0, 25) * grid; }Entonces, en general, mi problema es que no puedo descifrar cómo enviar estos valores JS a través de PHP y a mi servidor SQL.
Haré algunas suposiciones sobre la página del juego en sí, dado que probablemente no quieras que la página se actualice durante el juego, una buena solución sería Ajax (JavaScript asíncrono y XML). Esencialmente, esto es hacer una solicitud de publicación en segundo plano a su servidor sin recargar la página.
Encuentro jQuery bastante fácil de usar: https://api.jquery.com/jQuery.post/
$.ajax({ type: "POST", url: url, data: data, success: success, dataType: dataType });Entonces, al usar Ajax para publicar en una URL que espera que la información se actualice en el lado del servidor, accedería a esto en php usando algo similar a lo siguiente.
$leaderboard = $_POST['leaderboard']Espero que esto te apunte en la dirección correcta al menos. Buena suerte en el juego.