是否可以在ajax中返回两个不同的成功数据,例如:
$.ajax({
url: url_action,
type:'POST',
data: dataToSend,
success:function(results)
{
$(".photosLive").html(results);
}
});
在结果中,有两条信息:标题和图像。
然后我需要将标题放在另一个div .titleLive
中并将图像放入.photosLive
(但它已经可以了)
我该怎么做?
答案 0 :(得分:3)
您可以返回一个包含两个字段,标题和照片的JSON对象,然后您可以将其解析并插入到DOM中
JSON语法基本上是Javascript对象语法,看看:
几乎所有服务器端语言都有来自Objects的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\"}");
答案 1 :(得分:2)
好。执行此操作的最佳方法是让您请求的任何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"}
您的成功回调(您不必为响应设置新变量,我只是这样做来说明):
success: function(results) {
var title = results.title,
image = results.image;
// Do whatever with your info.
}
答案 2 :(得分:2)
这完全取决于您返回的数据类型(Json / XML /等)。
假设您返回纯文本:title:lorup ipsum,image:foobar.png
:
在success
函数中:
var returnedData = results;
var title = returnedData.split(",")[0].replace('title:','');
var image= returnedData.split(",")[1].replace('image:','');
$(".titleLive").html(title );
$(".photosLive").html(image);
问候。