Javascript 如何返回几个成功的数据?

Javascript 如何返回几个成功的数据?,javascript,jquery,ajax,Javascript,Jquery,Ajax,是否可以在ajax成功时返回两个不同的数据,例如: $.ajax({ url: url_action, type:'POST', data: dataToSend, success:function(results) { $(".photosLive").html(results); } })) 在结果中,有两条信息:标题和图像。 然后我需要把标题放在另一个div.titleLive,把图像放在.photosLive(但已经可以了) 我该怎么做

是否可以在ajax成功时返回两个不同的数据,例如:

$.ajax({
   url: url_action,
   type:'POST',
   data: dataToSend,
   success:function(results)
   {
      $(".photosLive").html(results);
   }
}))

在结果中,有两条信息:标题图像。 然后我需要把标题放在另一个div
.titleLive
,把图像放在
.photosLive
(但已经可以了)


我该怎么做

您可以返回一个JSON对象,该对象包含两个字段,title和photo,然后可以解析并插入到DOM中

JSON语法基本上是Javascript对象语法,请看:

几乎任何服务器端语言都有来自对象的JSON生成器

JSON示例:假设您的服务器生成我分配给var JSON的字符串(而不是html),因此您将其作为对成功方法的ajax调用的响应接收

var json = '{title:"A new title", photo:"path/to/pic"}'

var result = jQuery.parseJSON( json ); 


$('.titleLive').text(result.title);
$('.photosLive').attribute(src, result.photo);
以JSON格式返回的响应只是具有正确格式的纯文本,例如在服务器端,类似于:

setResponse("{title:\"A new title\", photo:\"path/to/pic\"}");

嗯。最好的方法是让您请求的URL以JSON的形式返回结果。但是,如果必须返回HTML,您可以执行以下操作:

...
success: function(results) {
    // select the image and title from wherever it may be in the HTML returned
    var response = $(results),
        title = response.find('#title').text(),
        image = response.find('img').attr('src');

    // Do whatever with your info.
}
编辑:返回JSON的示例:

返回标题和图像信息的页面:

{"title":"My Title","image":"http://mydomain.com/image.png"}
以及您的成功回调(您不必为响应设置新变量,我这样做只是为了说明):


这一切都取决于您返回的数据类型(Json/XML/等等)。 假设返回纯文本:
标题:lorup ipsum,图像:foobar.png
: 在
success
功能中:

var returnedData=结果

var title=returnedData.split(“,”[0]。替换('title:”,“”)

var image=returnedData.split(“,”[1]。替换('image:”,“”)

$(“.titleLive”).html(标题)

$(“.photosLive”).html(图像)

顺便说一下,这不干净。正如我提到的,最好的方法是使用结构化数据


问候。

如何使用JSON做到这一点?你的答案是用jQuery编码不?是的,那绝对是jQuery。如果您从请求返回JSON,那么它非常简单<代码>结果。标题
结果。图像
将立即可供您使用。好的!但是如何以JSON返回我的
结果
?@Steffi:无论你调用什么URL,都必须将结果格式化为JSON。jQuery将自动检测来自服务器的响应是HTML还是JSON。不涉及div。假设您正在向某个url发出AJAX请求,比如说
/images
。如果要在浏览器中浏览到该URL,它只会返回
{“title”:“Some title”,“image”:http://mydomain.com/someimage.png“}
。当您使用jQuery向该URL发出AJAX请求时,
success
回调的结果将是一个Javascript对象。如果您要发出警报(results.title)
,您将从
/images
返回标题。JSON只是格式化信息的一种方式。
success: function(results) {
    var title = results.title,
        image = results.image;

    // Do whatever with your info.
}