Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在jQuery AJAX调用中返回多个值_Jquery_Json - Fatal编程技术网

在jQuery AJAX调用中返回多个值

在jQuery AJAX调用中返回多个值,jquery,json,Jquery,Json,我有一个jQuery post函数,它在单击div后成功返回响应。但是,我想在成功时返回多个变量。我是否必须使用JSON,如果是,成功后是否可以将其集成到$.ajax函数中 编辑 我感谢大家的帮助 我从未用PHP编程。在asp.net中,JSON是异步webservice调用中数据交换的默认模式,因此作为开发人员,我不必担心JSON的底层细节。我想即使jQuery也会以JSON格式获取数据。如果您有多个值,可以以列表或字典格式获取它们。您必须从favorite.php返回JSON(或jQuer

我有一个jQuery post函数,它在单击
div
后成功返回响应。但是,我想在成功时返回多个变量。我是否必须使用JSON,如果是,成功后是否可以将其集成到
$.ajax
函数中


编辑

我感谢大家的帮助

我从未用PHP编程。在asp.net中,JSON是异步webservice调用中数据交换的默认模式,因此作为开发人员,我不必担心JSON的底层细节。我想即使jQuery也会以JSON格式获取数据。如果您有多个值,可以以列表或字典格式获取它们。

您必须从favorite.php返回JSON(或jQuery的ajax()函数支持的其他数据格式)。
编辑:它不必是json,但对于多个返回值,它是最容易解析的。例如,如果返回xml或html,则必须遍历节点以返回值

例如,如果您返回:
{“user”:“Joe”,“success”:“pass”,“message”:“favorite added”}

在成功中,您将使用:

function(response){
  var user = response.user;
  var success = response.success; // etc.
}
要记住的重要一点是在ajax调用中指定数据类型为json。 jQuery还支持其他数据类型:xml、html、脚本、jsonp、文本

我相信默认的是html。而且,在编写了php以在php脚本中返回具有正确格式的标题的xml之后,我可以告诉您,有时您需要指定jQuery的数据类型以正确解析它

我有一个jquery post函数,它在单击div后成功返回响应。 但是,我想在成功时返回多个变量

您只能返回一个值—一个文本块(在大多数情况下)

但是,您可以构造该文本,以便可以轻松地从中提取不同的数据位

我必须使用JSON吗

没有,但这是最简单的选择

,如果是,成功后是否可以将其集成到$.ajax函数中


嗯。对你有没有看过这本手册?它明确提到使用JSON和获取对象作为成功函数的参数。

最好只使用来自服务器的JSON响应。这样,您的服务器后端将充当JSON-RPC服务器,前端将完全独立于它!当然,您可以将JSON与
$.ajax
函数一起使用。下面是一个例子:

$.ajax({
    url: 'http://some.url.com/',
    data: 'some=post&data=xyz',
    type: 'POST',
    dataType: 'json',
    success: function(response, statusText) {
        // `response` here is a valid JSON object; jQuery handles the work of parsing the response, etc.
    }
});

假设返回的json是这样的

{
  firstName: 'Ricardo',
  lastName: 'Jones',
  errors: 0
}
您可以使用jQuery getJSON方法,如下所示:

$.getJSON(
   'favorite.php',
   { 'action': 'favorite', 'username': username, 'topic_id': topic_id, 'token': token },
   function(data) {
     alert(data.firstName);
     alert(data.lastName);
     alert(errors);
   }
)

在返回函数中,您可以获得所需的许多变量。

要将一些数据发送到“url”下提到的页面,您可以使用“数据”部分执行此操作

数据:{u令牌:CSRF令牌,保护字符串:request.term,有机体:“人类智慧”}
从url下面提到的页面中,这些值可以取为:

$request->get('prot_string')$请求->获取(“有机体”)

此外,如果响应不是有效的JSON,则调用
error
参数中指定的函数,并传递
xht
对象、
statusText
响应。查看jQuery文档了解更多详细信息。另一点:使用
eval()
函数直接解析响应被认为是不安全的。另外,访问参数,比如
jsonobj.someparameter
通常认为做
jsonobj['someparameter']
更安全。JSON-RPC服务器是什么意思?有了它有什么好处?ps我用了你的建议,它奏效了,我不知道没有$get.JSON你能做到这一点!此函数与您建议的函数有什么不同?@Scarface:JSON-RPC允许您将命令和参数传递给服务器并获得响应。它与您所做的非常相似,除了(据我所知,我从未使用过)它是服务器的JSON,以及服务器的JSON。此外,getJSON()是ajax()的包装器,它指定
数据类型:“JSON”
只是好奇,我使用php在JSON中传递值,我正在使用一个名为json.php的大文件,它允许我使用“$json->encode($data);”有没有一种不使用外部文档进行编码的方法?@Scarface:php在默认php安装5.2之后内置了json_encode。看:大卫,你是如何组织文本的,只是好奇,什么时候最好用json@Scarface-作为JSON、XML、CSV,以及您喜欢的任何格式。一旦成功,所有事情都会发生在完成请求的页面上。
$.getJSON(
   'favorite.php',
   { 'action': 'favorite', 'username': username, 'topic_id': topic_id, 'token': token },
   function(data) {
     alert(data.firstName);
     alert(data.lastName);
     alert(errors);
   }
)