2012-03-22 68 views
0

在我的頁面中,我有兩個名爲context和translation的div,在test1.php中,我得到兩個字符串,一個是上下文,另一個是翻譯區域。我寫了如下,但我不能寫入兩個div的值,有沒有辦法呢?jquery函數的兩個參數

$.ajax({ 
    type: "POST", 
    url: "test1.php", 

}).done(function(msg1, msg2) { 
document.getElementById("context").innerHTML=msg1; 
document.getElementById("translation").innerHTML=msg2; 

}); 
+0

如果您使用jQuery this - document.getElementById(「context」)。innerHTML = msg1;可以轉換爲 - $('#context')。html(msg1); – shershen 2012-03-22 07:10:30

回答

0

的這裏的問題是,.done()是不會有你的兩個變量msg1msg2,因爲它的參數。

您可以使用傳統的jQuery ajax成功處理程序,然後從中獲取單個響應參數,或者如果您想使用延遲語法,則可以使用.success()方法,它將同樣獲得相同的單個響應您必須從中檢索msg1和msg2。

這裏的one article舉例使用.success(fn)而不是.done(fn)

您可以看到here.done(fn)不會像您的代碼所期望的那樣將ajax調用的結果傳遞給回調。

所以,我想你想是這樣的:使用jQuery

$.ajax({ 
    type: "POST", 
    url: "test1.php", 
    success: function(response) { 
     // parse your msg1 and msg2 values out of the response here 
     // How you do that depends upon what the response to the POST is 
     document.getElementById("context").innerHTML=msg1; 
     document.getElementById("translation").innerHTML=msg2; 
    } 
}) 
0

你不能使用類似

$('#context').html(msg1); 
$('#translation').html(msg2);