首页 > 解决方案 > JSON 返回 Undefined 与 Javascript Parse

问题描述

我目前正在开发一个使用 Javascript 和 JSON 对象的项目,我试图在弹出模式中填充数据。该过程的工作原理是,用户单击反馈问题的标题,并使用反馈问题的 id 从数据库中提取数据并插入到 JSON 对象中。唯一的问题是模式以“未定义”返回。第一个脚本是我的 showTicket 函数,它使用 onclick 调用。

function showTicket(id) {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function() {
            if (this.readyState == 4 && this.status == 200) {
                var myObj = JSON.parse(this.responseText);
                document.getElementById("issueHeader").innerHTML = myObj.title;
            }
        };
        xmlhttp.open("GET", "./applet/ajax.fetchIssue.php?issueID="+id, true);
        xmlhttp.send();
        jQuery('#issueModal').modal('show');
    }

下一个脚本是我如何使用调用数据ajax.fetchIssue.php

if (isset($_GET['issueID'])) {
    $modalQuery = dbQuery("SELECT * FROM `feedback` WHERE `id` = '" . $_GET['issueID'] . "'");
    while ($data = mysqli_fetch_assoc($modalQuery)) {
        echo '[{';
        echo '"title":"' . $data['subject'] . '", ';
        echo '"body":"' . $data['body'] . '", ';
        echo '"date":"' . $data['submission_date'] . '", ';
        echo '"category":"' . $data['feedback_category'] . '"';
        echo '}]';
    }
}

现在我的 JSON 对象

[{"title":"Testing", "body":"Testing Feedback System...", "date":"2020-04-20", "category":"other"}]

我查看了其他线程,它们似乎并不能帮助我缩小问题的范围。任何和所有的反馈都表示赞赏。谢谢!

标签: javascriptphpjsonajax

解决方案


检查浏览器控制台

所以从截图中你可以看到你的myObj.titlewill 实际上是未定义的。与myObj数组类型一样。所以你应该更好地迭代myObj,如果只需要单个对象,那么使用简单的 JSON 对象而不是数组。


推荐阅读