JQuery GET请求无法从php echo获取正确的数据

时间:2017-06-05 14:07:38

标签: javascript php jquery

我正在尝试使用jquery .get请求填充表,该url是一个php文件。 php从数据库获取数据,然后它应该将json数组返回给jquery,数组将填充表。虽然数组的长度按原样返回,但表格单元格为空。

这是我的get.php函数:

<?php 
$mysqli=new mysqli("localhost:3306","root","","leagues");  
if (mysqli_connect_errno())
{
    printf("Connect failed: %s\n", mysqli_connect_error());
    exit();
}   

$return_arr = array();
$query = "SELECT * FROM league";

if ($result = $mysqli->query($query)) {
    while ($row = $result->fetch_row()) 
    {
        $return_arr[] = $row;
    }
}
$mysqli->close();
header('Content-Type: application/json');
echo json_encode($return_arr);
?>

这是我的jquery get函数

$.get('php/get.php',function(responseJson) 
    {
        if(responseJson!=null)
        {
            $("#tableleague").find("tr:gt(0)").remove();
            var table1 = $("#tableleague");
            $.each(responseJson, function(key,value) { 
                var rowNew = $("<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>");
                rowNew.children().eq(0).text(value['teams']); 
                rowNew.children().eq(1).text(value['playedgames']); 
                rowNew.children().eq(2).text(value['wongames']); 
                rowNew.children().eq(3).text(value['tiegames']); 
                rowNew.children().eq(4).text(value['lostgames']); 
                rowNew.children().eq(5).text(value['scoredgoal']);
                rowNew.children().eq(6).text(value['receivedgoal']); 
                rowNew.children().eq(7).text(value['points']); 
                rowNew.appendTo(table1); 
            }); 
        }
    }); 

以下是我的网页外观,显示的是php文件响应。 enter image description here

由于反应还可以,我错误的是细胞没有被填满?谢谢。

2 个答案:

答案 0 :(得分:1)

如果查看JSON数据,可以看到没有teamsplayedgames等密钥。这是因为您在PHP中使用了fetch_row()。将其更改为fetch_assoc()

while ($row = $result->fetch_assoc()) 

这将为您$row提供字段名称作为键,而不是使用fetch_row()提供的数字键。

答案 1 :(得分:0)

您可以将php json转换为javascript对象

 obj = JSON.parse(json);

ES:

var json='{"ex1":"test","ex2":[{"sub1":"test"},{"sub2":""s2test}],"ex3":true}';
var obj = JSON.parse(json);

以后可以访问数据:

obj.ex1 // test
obj.ex2[0].sub2 //s2test