我正在寻找将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 [0]访问game.data.dataArray的某个数据元素.
这些给出相同的输出1:1:120,mymap2
log("1: " + game.data.dataArray);
log("2: " + game.data.dataArray[0]);
应该return_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
} 和javascript: $.getJSON("php/CRUD.php", {"_functionToRun" : ""}, function (returned_data) { // you can push `returned_data` to an array / add it to an object, // but then you need to keep track of its index log("1: " + returned_data.experience); //output: `1: 120` log("2: " + returned_data.levelname); //output: `2: mymap2` } ); 标签:javascript,php,arrays 来源: https://codeday.me/bug/20191011/1890611.html |
---|