У меня есть игра, которая обновляет информацию каждые 10 секунд из базы данных MySQL. Там будет функция JS, которая вызывается каждый раз, когда это происходит. Я не могу выполнить функцию успеха, и я понятия не имею, почему. Никаких ошибок на консоли.Передача массива с PHP на Javascript с помощью JQuery & JSON
Javascript:
function refreshStats() {
console.log("number 1");
$.ajax({
url: "refreshData.php",
type: "POST",
contentType: "application/json; charset=utf-8",
dataType : 'json',
data: { },
cache: false,
async: true,
success: function (msg) {
if(msg){
console.log("number 2");
var arr = JSON.parse(msg);
document.getElementById("interface_stats").innerHTML =
"Fatigue: " + arr[0];
}
}
});
}
PHP:
<?php
$username = $_POST['user'];
ini_set('display_errors', 1);
error_reporting(E_ALL);
$con = mysql_connect("localhost","redacted","redacted");
if (!$con)
{
die('SQL error! Aborting: ' . mysql_error($con));
}
$db = mysql_select_db("aftertheend",$con) or die("Database error! Aborting. Inform the admin.");
$query = "SELECT fatigue, food, water, radiation, condition FROM users WHERE username='TheMightyThor'";
$result = mysql_query($query, $con);
$data = mysql_fetch_row($result);
$stats = [
"fatigue" => $data[0],
"food" => $data[1],
"water" => $data[2],
"radiation" => $data[3],
"condition" => $data[4]
];
echo json_encode($stats);
?>
добавить функцию ошибок, который записывает детали на консоль – Steve
При указании 'DATATYPE:«json'', JQuery будет разбирать ответ на объект перед вызовом обратный вызов 'success', поэтому параметр' msg' уже должен быть объектом. –
Вы установили 'dataType' в JSON. jQuery будет автоматически анализировать ответ для вас, поэтому, когда ваша функция 'success' выполняет вашу переменную' msg', уже будет объектом Javascript, не нужно снова анализировать. Я удивлен, что не появляется в консоли. –