由于某种原因,我的json数组直接回显到页面

时间:2012-02-04 23:49:40

标签: php mysql ajax json

我正在'回显'一个json数组回到ajax,但它正在将整个数组打印到屏幕上。我没办法!有人可以看到导致此问题的以下代码有什么问题吗?

我的ajax电话:

theUrl = 'myphpquerypage.php?id=somenumber'

$.getJSON(theUrl, function(data) {        
    var content = "";
    $.each(data, function(index, array) {
        content += "<div>" + array.filename + "</div>";
        $(content).appendTo('#myContentDivTag');

myphpquerypage.php:

    $pdo = new PDO($dsn, $username, $password);
    $rows = array();
if(isset($_GET['id'])) {
    $stmt = $pdo->prepare("call getimages(?)");
    $stmt->execute(array($_GET['id']));
    $rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
}
echo json_encode($rows);

回声导致它直接进入屏幕(#myContentDivTag中没有任何内容):

[{"filename":"img4dc458200caa7.jpg"},{"filename":"img41b65171bd651.jpg"},    {"filename":"img41be6c0eae1a4.jpg"},{"filename":"img41e5d5eede9da.jpg"},    {"filename":"img41e5d64383039.jpg"},{"filename":"img422fb82b3768a.jpg"},    {"filename":"img422fc528cc8d1.jpg"}]

谢谢大家,非常感谢任何帮助。我花了好几个小时尝试不同的事情。显然我正在获取json编码的数组,但我无法正确显示它。

1 个答案:

答案 0 :(得分:0)

我想我们在ajax请求中有不同的处理JSON数据的方法,虽然你的错误没有错,但我的工作似乎有效;)

以下是我如何做的一个示例,似乎工作正常:http://jsfiddle.net/5YWpr/3/ (注意,它使用jsfiddle的ajax测试器,所以它发布了要返回的示例json数据,为什么ajax请求看起来很奇怪,如果你只想插入代码,请使用此线程中的那个)。

使用Javascript:

$.ajax("myphpquerypage.php",
{
    dataType: "json",
    type: "get" /*can also be post*/,
    data: {id: "somenumber"},
    success: function(data)
    {
        var content = "";
        for (var key in data)
        {
            content += "<div>" + data[key].filename + "</div>";
        }

        $("#test").append(content);
    }
});

HTML:

before div

<div id="test">
</div>

after div

告诉我它是怎么回事。