当前位置: 首页 > 面试题库 >

通过AJAX调用的回声PHP编码JSON返回确切的内容?

邵俊才
2023-03-14
问题内容

我想我在这里遗漏了一些东西:

使用AjAX,我从数据库中获取了一些数据,并以JSON格式将其发送回去。$ jsondata = array();

while ($Row = mysql_fetch_array($params))
{

    $jsondata[]= array('cat_id'=>$Row["cat_id"], 
                          'category'=>$Row["category"], 
                     'category_desc'=>$Row["category_desc"],
                     'cat_bgd_col'=>$Row["cat_bgd_col"]);
};

echo("{\"Categories\": ".json_encode($jsondata)."};");

到目前为止,我认为没有问题。

在回教士方面,我将以上内容接收回

ajaxRequest.responseText

如果我这样做

var categoriesObject = ajaxRequest.responseText; 
alert(categoriesObject);

我看到了我希望看到的内容,即警报中的整个阵列。

一切出错的地方就是尝试访问响应。我得到的错误是“ categoriesObject”不是对象-
如果不是,它是什么?我的bugginh是,我什至不能像这样访问它:

document.write(categoriesObject.Categories[0].category);

那我在做什么错呢?


问题答案:
  1. 您不应该手动创建JSON。用:
    echo json_encode(array('Categories' => $jsondata));
    

要不就

    echo json_encode($jsondata);

我看不出要补充的理由Categories

  1. 您必须使用JSON.parse(在大多数浏览器中可用,但也可以作为脚本使用)在客户端解码JSON :

    var data = JSON.parse(ajaxRequest.responseText);
    
  2. 如果要非常正确,请添加

    header('Content-type: application/json');
    

到您的PHP脚本。



 类似资料:
  • 问题内容: 基本上我想做的是返回mysql查询的结果。我知道如何将查询结果的每一行放入其自己的JSON对象中,现在我正在努力寻找一种方法,以便在有多行结果将其返回给我的jquery时使用。在我的jquery中,我调用了$ .ajax()函数,对此我没有任何问题。我的问题在于成功部分,我希望能够执行以下操作: 我希望能够像JSON对象数组一样遍历结果变量。结果变量是一个字符串,由php文件的所有输出

  • 问题内容: 我正在尝试使我的第一个ajax示例在我的MAMP上运行。我的ajax.html看起来像: 我的ajax.js看起来像: 我的ajax.php看起来像: 回声“你好世界”; 我从萤火虫中检测到响应标头: 响应标头 连接Keep-Alive 内容长度11 Content-Type text / html 日期2012年11月5日星期一18:57:46 GMT Keep-Alive超时= 5

  • 我检测到来自Firebug的响应标头: 响应标头 连接保持活动 内容长度11 内容类型文本/html 日期周一,2012年11月5日18:57:46 GMT 保持活动时间=5,max=99 服务器端/2.2.22(Unix)MOD_SSL/2.2.22 OpenSSL/0.9.8R DAV/2 PHP/5.4.4 X-Pad避免浏览器错误 X-Powered-由PHP/5.4.4 但是没有响应文本

  • 本文向大家介绍jQuery通过Ajax返回JSON数据,包括了jQuery通过Ajax返回JSON数据的使用技巧和注意事项,需要的朋友参考一下 服务端PHP读取MYSQL数据,并转换成JSON数据,传递给前端Javascript,并操作JSON数据。本文将通过实例演示了jQuery通过Ajax向PHP服务端发送请求并返回JSON数据。 JSON(JavaScript Object Notation

  • 问题内容: 我正在使用接受json响应的jquery ajax调用: 在我的php后端函数中,我在一个简单的数组上使用json_encode,如下所示: 但是 alert(msg.hello) 为我返回 未定义 。这是怎么了?另外,在我的 console.log中, 我能够得到如下输出: 问题答案: 使用的返回数据:

  • 问题内容: 我一直在用这个把头砸在砖墙上,我已经尝试了很多关于stackoverflow的解决方案,但是找不到一个可行的解决方案! 基本上,当我发布我的AJAX时,PHP返回JSON,但AJAX显示的是Undefined而不是值: JS : PHP的 : firebug的JSON结果 : AJAX将JSON结果显示为Undefined,我不知道为什么。我尝试显示添加和。我也曾尝试将其更改为and