AJAX返回常规JSON但是当我使用对象时它不会返回

时间:2014-10-25 18:51:18

标签: php jquery ajax json

我的所有SQL代码和东西都有效,就像我说的那样,如果

,它的工作正常
$jTableResult = array();
$jTableResult['message'] = $rows1;
    echo json_encode($jTableResult);

$jTableResult = array($rows1);
echo json_encode($jTableResult);

JQuery的:

<script type="text/javascript">
    $(document).ready(function(){
      $("#alertbut").click(function(){
        $.ajax({
            type: 'POST',
            url: '../ajax/ajax.php?key=8789789fdgjhl',
            //data:dataString,
            dataType: 'json',
            success: function (s) {
                //alert(s);
                $( "#alerts" ).empty();
                $('#alerts').append($.parseJSON(s[0]));
            }


        });
      });
    });

PHP:

if($key == "8789789fdgjhl")
{
$getalerts = $odb->prepare("SELECT * FROM alerts LIMIT 5");
$getalerts->execute();
$rows = array();
while($row = $getalerts->fetch(PDO::FETCH_ASSOC))
{
    $rows1[] = $row['user'];

}
$jTableResult = array();
$jTableResult['message'] = $rows1;
    echo json_encode($jTableResult);
}

1 个答案:

答案 0 :(得分:0)

当您将JSON收到success函数时,已经解析了JSON,因为您已告诉ajax调用预期的dataType为json。因此$.parseJSON()会将您的对象转换为单个数字字符串,例如[object Object],因此您的案例中会得到o

改变它。

$('#alerts').append(s[0]);

如果返回的数组的键为s且索引为0的数组,则应该给出您期望的结果。

修改

鉴于您提供的链接,您实际上有一个数组,其中包含索引为message的名称集合。请使用以下内容:

$('alerts').append(s.message[0]);