Cur*_*ewe 1 javascript php json
首先我要指出问题,基本上在我的$.each(data, function (i, v) {代码中它返回了一堆变量,这些变量是从PHP代码中回应的,json_encode但是在尝试放置这些变量时甚至alert()它们显示undefined我已经尝试了很多方法实际上显示数据,但它总是返回undefined,我不知道为什么,因为我的代码似乎对我的观点有效.
我目前的javascript代码如下
$.ajax({
url: "functions/ajax.php",
data: "func=auto",
type: "GET",
dataType: "json",
success: function(data){
$.each(data, function (i, v) {
var name = v['name'];
var player_id = v['id'];
alert(player_id);
});
},
error: function (jqXHR, textStatus, errorThrown){
console.log('Error ' + jqXHR);
}
});
Run Code Online (Sandbox Code Playgroud)
我目前的PHP代码如下
$res = $DB->Query("SELECT * FROM `inventory` WHERE `account_id` = '$_SESSION[ID]'");
$data = array();
while($player = $DB->fetch_assoc()) {
$data['name'] = $player['name'];
$data['id'] = $player['player_id'];
}
header('Content-type: application/json');
echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)
只是总结了整个事情了,使用时alert()就player_id返回undefined其中很显然,我希望它返回正确的值
你没有发回一个多级数组,你发送的数组只有两个元素.例如你的JS代码应该是
success: function(data){
var name = data['name'];
var player_id = data['id'];
}
Run Code Online (Sandbox Code Playgroud)
如果DB查询IS应该发回的多条记录,那么你错了构建它:
while($player = $DB->fetch_assoc()) {
$data[] = array('name' => $player['name'], 'id' => $player['player_id']);
}
echo json_encode($data);
Run Code Online (Sandbox Code Playgroud)
然后你的$.each()代码应该开始工作,因为你要发回一个多维数组/对象.