【问题标题】:PHP json_encode() returning Undefined to $.getJSONPHP json_encode() 返回未定义到 $.getJSON
【发布时间】:2019-03-05 18:24:35
【问题描述】:

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

这是通过查询数据库并返回结果生成的一小部分数组...

   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);          
        }
    );
});

【问题讨论】:

  • 你的 php 脚本是否返回了有效的 JSON?
  • @asiby 我如何查看?
  • 直接导航到“example/api/education.php?callback=?” jQuery 的做法与此相同。但在您的情况下,只需在浏览器中输入 URL 并观看将显示的内容。您可能希望将第二个 ? 替换为适当的值。
  • 使用 var_dump(); 检查它
  • @asiby 当我直接导航到它返回 ?() 的 URL 时,我不确定“用正确的值替换第二个 ?”是什么意思。我应该有什么价值?

标签: javascript php jquery arrays json


【解决方案1】:

我发现了问题。它不在代码中,而是在 SQL 查询返回的数据中。此字符 � 是存储在数据库中的字符串的一部分。那个字符以某种方式使 JSON 返回未定义。当我从数据库中删除 � 时,一切都开始正常工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-04-08
    • 2010-11-29
    • 2020-06-30
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多