gpt4 book ai didi

javascript - 将 php 数组传递给 javascript 数组

转载 作者:行者123 更新时间:2023-11-29 18:16:02 26 4
gpt4 key购买 nike

我正在寻找将 php 数组传递给 javascript 的最佳方法。

我正在制作一个 Angular 色扮演游戏,当他们登录时,我想从数据库返回他们保存的数据并存储在 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: 120,mymap2 相同的输出

        log("1: " + game.data.dataArray);
log("2: " + game.data.dataArray[0]);

是否应该returned_data.split("")将返回的字符串拆分为两个数组元素?


编辑:好的,我已经完成了 echo json_encode($message); 并返回了引号,但对于 game.data.dataArraygame.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

最佳答案

如果你使用 $.getJSON 并且你提供了有效的 json,你不需要解析任何东西,所以你可以将你的 php 更改为:

if ($row = $result->fetch_assoc()) {
echo json_encode($row);
exit; // You're limiting the number of rows to 1, so there is no need to continue
}

和 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 数组传递给 javascript 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23305636/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com