2012-03-22 67 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);