Reputation: 7087
Is it possible to return two different data on success in ajax, for example:
$.ajax({
url: url_action,
type:'POST',
data: dataToSend,
success:function(results)
{
$(".photosLive").html(results);
}
});
In results, there are two pieces of information: Title and Image.
Then I need to put title in another div .titleLive
and put image in .photosLive
(but it's already OK)
How can I do this?
Upvotes: 0
Views: 420
Reputation: 4839
You could return a JSON object containing two fields, title and photo which you can then parse and insert into your DOM
JSON syntax is basically Javascript object syntax, take a look at:
There are JSON generators from Objects for almost any server side language
JSON example: Say your server generates the string I assigned to the var json (instead of html) so you receive it as response of your ajax call into your success method
var json = '{title:"A new title", photo:"path/to/pic"}'
var result = jQuery.parseJSON( json );
$('.titleLive').text(result.title);
$('.photosLive').attribute(src, result.photo);
To return your response in JSON is just plain text with correct format, for example in your server side something like:
setResponse("{title:\"A new title\", photo:\"path/to/pic\"}");
Upvotes: 3
Reputation: 5313
Well. The best way to do this is to have whatever URL you're requesting return the result as JSON. If, however, it has to return HTML, you could do this:
...
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.
}
Edit: Example with JSON return:
The page returning the title and image information:
{"title":"My Title","image":"http://mydomain.com/image.png"}
And your success callback (you don't have to set new variables for the response, I'm just doing it to illustrate):
success: function(results) {
var title = results.title,
image = results.image;
// Do whatever with your info.
}
Upvotes: 2
Reputation: 15070
It all depend on the data type you return (Json/XML/etc.).
Suppose you return plain text: title:lorup ipsum,image:foobar.png
:
In the success
function:
var returnedData = results;
var title = returnedData.split(",")[0].replace('title:','');
var image= returnedData.split(",")[1].replace('image:','');
$(".titleLive").html(title );
$(".photosLive").html(image);
By the way, this not clean. As I mentioned it, the best way is to use structured data.
Regards.
Upvotes: 2