在php中创建数组并使用Jquery get

在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

我正在尝试调用数据库,并收到一个在PHP中限制为10的“toplist”。在这里,我需要创建一个数组,并使用$.get()将其返回给Jquery

但是这段代码无法接收所有数据,我如何才能接收这些数据,然后在Jquery中对从PHP返回的所有数据执行“for each”

Jquery:

$.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