Я ищу лучший способ передать массив php в javascript.
Я делаю RPG, и когда они входят в систему, я хотел бы вернуть их сохраненные данные из базы данных и сохранить в массиве на стороне javascript:
Чтобы получить данные, я делаю:
$.getJSON("php/CRUD.php", {"_functionToRun" : ""},
function (returned_data) {
game.data.dataArray.push(returned_data.split(" "));
log("1: " + game.data.dataArray); //output: `1: 120,mymap2`
log("2: " + game.data.dataArray[0]); //output: `2: 120,mymap2`
}
);
PHP:
$qry =
'SELECT *
FROM userstats
WHERE id_user_fk ="' . $_SESSION['userid'] . '"
LIMIT 1';
$result = $mysqli->query($qry) or die(mysqli_error($mysqli));
while ($row = $result->fetch_assoc()) {
$message = $row['experience'] . $row['levelname'];
}
echo json_encode($message);
1) Это лучший способ получить набор значений в массив js?
2) Почему я не могу получить доступ к определенному элементу данных game.data.dataArray
, используя game.data.dataArray[0]
.
Они дают тот же результат 1: 120,mymap2
log("1: " + game.data.dataArray);
log("2: " + game.data.dataArray[0]);
Должен ли returned_data.split(" ")
разбивать возвращаемую строку на два элемента массива?
РЕДАКТИРОВАТЬ: Хорошо, я сделал echo json_encode($message);
, и он возвращается с кавычками, но все равно возвращает те же результаты для game.data.dataArray
и game.data.dataArray[0]
1: "120,mymap2"
2: "120,mymap2"
Я также изменил функцию на $.getJSON
Снова изменился на
$qry =
'SELECT *
FROM userstats
WHERE id_user_fk ="' . $_SESSION['userid'] . '"';
$result = $mysqli->query($qry) or die(mysqli_error($mysqli));
while ($row = $result->fetch_assoc()) {
$array[] = $row['experience'] . $row['levelname'];
die(json_encode($array[]));
}
и JS это:
$.getJSON("php/CRUD.php", {"_functionToRun" : ""},
function (returned_data) {
game.data.dataArray.push(returned_data.split(" "));
log("1: " + game.data.dataArray);
log("2: " + game.data.dataArray[0]);
}
);
Результаты:
Uncaught melonJS: level <br />
<font size='1'><table class='xdebug-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-...<omitted>...nd