PHP json_encode()返回Undefined到$ .getJSON

时间:2019-03-05 18:24:36

标签: javascript php jquery arrays json

我正在用php创建一个数组,然后在通过$ .getJSON获取它之前使用json_encode(),但是它返回Undefined。如果我仅向JS发送一行,则可以正常工作(json_encode($ classes [0])),但是当我尝试发送所有数据时,它将返回Undefined。有什么想法吗?

这里有一些通过查询数据库并返回结果而生成的数组...

   Array
(
    [0] => Array
        (
            [Record_Type] => S
            [Convention_ID] => 
            [Event_ID] => 19030145
            [Sponsor_ID] => Google
            [Course_ID] => 2837199
            [Last_Modified_Date_Time] => DateTime Object
                (
                    [date] => 2019-02-25 10:03:36.000000
                    [timezone_type] => 3
                    [timezone] => US/Pacific
                )

        )

    [1] => Array
        (
            [Record_Type] => S
            [Convention_ID] => 
            [Event_ID] => 19030111
            [Sponsor_ID] => Google
            [Course_ID] => 2837192
            [Last_Modified_Date_Time] => DateTime Object
                (
                    [date] => 2019-02-21 07:23:47.000000
                    [timezone_type] => 3
                    [timezone] => US/Pacific
                )

        )

这是PHP减去SQL语句...

$stmt = sqlsrv_query($conn, $sql);

$classes = array();
while( $class = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
    $classes[] = $class;
}

echo $_GET['callback'] . '('.json_encode($classes).')';

这是我用来获取JSON数据的Javascript ...

$(function() {
    $.getJSON("https://example/api/education.php?callback=?",
        function(data) {        
            console.log(data);          
        }
    );
});

1 个答案:

答案 0 :(得分:0)

我发现了问题。它不在代码中,而在SQL查询返回的数据中。这个字符-是数据库中存储的字符串的一部分。这个字符使JSON返回Undefined。当我从数据库中删除所有内容时,一切都开始正常工作。