2011-03-21 65 views
0

是否有可能在阿賈克斯成功返回兩個不同的數據,例如:如何成功返回多個數據?

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

});

結果中有兩條信息:標題圖片。 然後我需要把標題放在另一個div .titleLive,並把圖像放在.photosLive(但它已經OK了)

我該怎麼做?

回答

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. 
} 
+0

如何用JSON做到這一點?你的答案是編碼在jQuery中沒有? – Steffi 2011-03-21 22:06:10

+0

是的,這絕對是jQuery。如果你有JSON從請求中回來,這非常簡單。 'results.title'和'results.image'將立即可供您使用。 – 2011-03-21 22:20:55

+0

好的!但是怎樣才能在JSON中返回我的結果呢? – Steffi 2011-03-21 22:25:41

3

你可以返回一個包含兩個字段,標題和照片,然後您可以解析並插入到DOM

JSON語法基本上是Javascript對象語法JSON對象,來看看:

http://www.json.org/js.html

有從對象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\"}"); 
+0

謝謝米克爾!有用 ! – Steffi 2011-03-21 23:51:43

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);

順便說一句,這不乾淨。正如我所提到的,最好的方法是使用結構化數據。

問候。