在php中创建数组并使用Jquery get
我正在尝试调用数据库,并收到一个在PHP中限制为10的“toplist”。在这里,我需要创建一个数组,并使用$.get()将其返回给Jquery 但是这段代码无法接收所有数据,我如何才能接收这些数据,然后在Jquery中对从PHP返回的所有数据执行“for each” Jquery:在php中创建数组并使用Jquery get,php,jquery,arrays,Php,Jquery,Arrays,我正在尝试调用数据库,并收到一个在PHP中限制为10的“toplist”。在这里,我需要创建一个数组,并使用$.get()将其返回给Jquery 但是这段代码无法接收所有数据,我如何才能接收这些数据,然后在Jquery中对从PHP返回的所有数据执行“for each” Jquery: $.get("core.inc.php?get_toplist=1", function(data) { var json = JSON.parse(data); aler
$.get("core.inc.php?get_toplist=1",
function(data) {
var json = JSON.parse(data);
alert(json['name']);
});
PHP:
您返回的是一个数组,但Javascript代码将其视为单个元素。尝试:
alert(json[0].name);
如果您想要一个foreach
,可以执行以下操作:
$.each(json, function(i, el) {
console.log(el.name + " score is " + el.points);
});
您返回的是一个数组,但Javascript代码将其视为单个元素。尝试:
alert(json[0].name);
如果您想要一个foreach
,可以执行以下操作:
$.each(json, function(i, el) {
console.log(el.name + " score is " + el.points);
});
朋友,你的json会是这样的
[{"position":1,"name":"name1","points":"points"},{"position":2,"name":"name2","points":"points"}, {"position":3,"name":"name3","points":"points"},....]
所以你不能像你那样直接访问它
做一个循环,然后访问它
$.each(data,function(i,val){
alert(val.name);
});
这将起作用。朋友,您的json将是这样的
[{"position":1,"name":"name1","points":"points"},{"position":2,"name":"name2","points":"points"}, {"position":3,"name":"name3","points":"points"},....]
所以你不能像你那样直接访问它
做一个循环,然后访问它
$.each(data,function(i,val){
alert(val.name);
});
这将起作用。您的php代码不正确
if ($_GET['get_toplist']) {
$get_top_list = mysql_query("
SELECT * FROM ".$DBprefix."Submissions
WHERE status='1'
ORDER BY points DESC LIMIT 10");
$i = 0;
$arr = array();
while ($top_list = mysql_fetch_array($get_top_list)) {
$arr[] = array(
'position' => $i++,
'name' => $top_list['name'],
'points' => $top_list['points']
);
}
}
echo json_encode($arr);
}
只需在echo json_encode($arr)之前添加“}”
此外,您在警报(json[0]['name'])中得到了数组更改 您的php代码不正确
if ($_GET['get_toplist']) {
$get_top_list = mysql_query("
SELECT * FROM ".$DBprefix."Submissions
WHERE status='1'
ORDER BY points DESC LIMIT 10");
$i = 0;
$arr = array();
while ($top_list = mysql_fetch_array($get_top_list)) {
$arr[] = array(
'position' => $i++,
'name' => $top_list['name'],
'points' => $top_list['points']
);
}
}
echo json_encode($arr);
}
只需在echo json_encode($arr)之前添加“}”
此外,您在警报(json[0]['name'])中得到了数组更改 现在我在
alert()
@MichaelBerkowski中得到了“undefined”,它正在调用json\u encode()
,所以它返回了json。标头对返回的数据没有任何影响。在浏览器的控制台中,您至少应该看到AJAX请求返回的一些输出,尽管它可能不是jQuery所期望的格式。@MichaelBerkowski不,它不是。jQuery只是以字符串的形式返回原始数据,然后JSON.parse()
对其进行解析。您会得到未定义的,因为返回的数据是多维数组,并且name
位于一个内部节点中。我只是在警报()中得到了“未定义的”
@MichaelBerkowski它正在调用JSON\u encode()
,所以它返回了JSON。标头对返回的数据没有任何影响。在浏览器的控制台中,您至少应该看到AJAX请求返回的一些输出,尽管它可能不是jQuery所期望的格式。@MichaelBerkowski不,它不是。jQuery只是以字符串的形式返回原始数据,然后JSON.parse()
对其进行解析。由于返回的数据是多维数组,且name
位于内部节点内,因此得到undefined